使用virtualenv -p /usr/local/bin/python3.4 py34env安装python3环境报错,缺少zlib
可在python中导入zlib缺没有报错,错误如下:
[root@localhost crazycabbage]# virtualenv -p /usr/local/bin/python3.4 py34env
Running virtualenv with interpreter /usr/local/bin/python3.4
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/virtualenv.py", line 22, in <module>
import zlib
ImportError: No module named 'zlib'
[root@localhost crazycabbage]# python
Python 2.7.5 (default, Nov 20 2015, 02:00:19)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import zlib
>>>
Google后说在编译时加上--with-zlib,可报错 unrecognized options: --with-zlib,求大神帮忙!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
CentOS-7默认安装的是Python2.7.5,如你在shell下输入Python后进入的解释器里写的:Python 2.7.5 (default, Nov 20 2015, 02:00:19)。Python3.4应该是你自己装的,之所以2.7.5下可以import zlib,而3.4下不能,可能是因为你的3.4的库中没有zlib这个库,所以你需要先确认一下3.4到底有没有zlib。终端输入
/usr/local/bin/python3.4进入3.4的解释器,然后输入import zlib看看有没有报ImportError异常,如果有,继续看下面的内容,如果一切正常,直接给我留言……你需要尝试重新编译安装一遍对应
Python版本的zlib,以确保正确的zlib被安装,甚至我建议你把zlib-devel也安装了。但很多时候重新安装并不管用,要么会在使用
Yum等包管理器安装时,在安装过程中看到类似“已经存在”、“已安装”(当然是英文提示)的字样,要么强行安装后依然无法使用。这是因为它仍然安装到了
Python2.7的库目录下,解决方法如下:在
Python2.7.5的解释器中,输入如下代码,查看2.7的库目录:输出结果:
最直接的方法是把所需的目录添加到Python3.4的系统路径中。
首先把你的系统默认Python改为Python3.4,代替Python2.7.5:
终端中输入
Python进入解释器验证。然后运行
vim ~/.bashrc编辑系统环境变量,进入编辑模式后再该文件最后加上这一句export PYTHONPATH=$PYTHONPATH:/usr/lib64/python2.7/xxx/:/usr/lib64/python2.7/xxx/,xxx是你需要的库目录,冒号分割,然后终端输入source ~/.bashrc让其在当前终端有效,或者直接重启设备。你可能会问我,我怎么知道
zlib在哪个目录?呃,好吧,帮人帮到底……进入
Python3.4解释器,把上面输出的2.7的目录逐个append到sys.path这个列表里,然后import zlib试过去,不报错为止,办法虽土,行之有效。导入整个目录虽然直接且方便,但很可能会和3.4的库有冲突,所以你最好能知道
zlib是哪些文件,然后copy到3.4的系统路径下,譬如_sqlite3这个东西只需要_sqlite3.so这一个文件。zlib我不清楚,抱歉……你试试呗,理论上这样能搞定,
--with-zlib应该是指你在编译 Pyton 3.4 的时候加上。这里明显是你的 Python 2.7 版本编译了 zlib 而 3.4 没有。