mac下,用virtualenv新建指定python版本时报No module named 'zlib'错!!


在mac下学python,感觉不那么顺啊。。
最近在学习如何管理机子上各种版本的python的切换,用到了virtualenv,用默认的python来新建虚拟环境没问题,当我指定python版本时,就报错,如下:


 Karon:~ karonchen$ virtualenv test --python=Python 3.4
Running virtualenv with interpreter /Users/karonchen/.pythonbrew/pythons/Python-3.3.5/bin/Python
    Traceback (most recent call last):
    File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py", line 17, in <module>
    import zlib
    ImportError: No module named 'zlib'
Karon:~ karonchen$

我看了下/usr/local/lib确实木有,于是我安装了zlib-1.2.8.tar.gz,安装步骤也不知道对不对,如下:


 Karon:~ karonchen$ ./configure 
Karon:~ karonchen$ make
Karon:~ karonchen$ sudo make install

求助,小弟感激不尽。。

python virtualenv

Patch 11 years ago

File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py", line 17, in

你的 virtualenv 在使用 /Users/karonchen/.pythonbrew/pythons/Python-3.3.5/bin/Python,但是它在尝试使用 /usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7
下的文件。这显然不对嘛。找不到 zlib 是因为 Python 3 的库命名方法不一样。你是不是设置过 PYTHONPATH?

usher answered 11 years ago

这个问题在stackoverflow上看到过
zlib应该是python的标准库
当时的题主重新安装了python的相应版本就好了

原因应该是如果是编译安装的python 有些必要的包可能没有安装
make和make install的输出信息:

Python build finished, but the necessary bits to build these modules were not found:
[...] zlib
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

参考下面链接:
http://stackoverflow.com/questions/20829507/virtualenv-no-module-named-zlib

Dylan-Z answered 11 years ago

Your Answer