no module named zlib
首先,请忍受我。我很难告诉别人我的问题,这是一个漫长的话题...
我正在使用pythonbrew在Ubuntu 10.10中运行多个版本的python。
有关安装pythonbrew及其工作方式的信息,请参考以下链接
http://www.howopensource.com/2011/05/how-to-install-and-manage-different-versions-of-python-in-linux/
阅读了几个stackoverflow线程之后,我终于在以下目录下找到了名为Setup的文件:?/ .pythonbrew / pythons / Python-2.7.1 / lib / python2.7 / config
1 2 3 4 5 | In this Setup file I see # Andrew Kuchling's zlib module. # This require zlib 1.1.3 (or later). # See http://www.gzip.org/zlib/ # zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz |
我取消了最后一行的注释,然后再次运行python -v。但是,当我尝试导入zlib时,我收到了相同的错误,因此我想我必须做一些事情才能将zlib安装到lib中。
但是我对我需要做什么一无所知。有人可以指导我正确的方向吗???非常感谢你!
我这样做是因为我想在我创建的不同virtualenv中使用不同版本的python。
当我执行virtualenv -p python2.7时,没有收到名为zlib的模块。
1 2 3 4 5 6 7 8 9 | jwxie518@jwxie518-P5E-VM-DO:~$ virtualenv -p python2.7 --no-site-packages testenv Running virtualenv with interpreter /home/jwxie518/.pythonbrew/pythons/Python-2.7.1/bin/python2.7 Traceback (most recent call last): File"/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 17, in <module> import zlib ImportError: No module named zlib |
编辑
我必须通过附加--force来安装2.7.1。
我正在开发Django,我需要一些缺少的模块,例如sqlite3,要创建我的virtualenv,我肯定需要zlib。如果我仅使用系统默认值(2.6.6),则没有问题。
要使用系统默认值执行此操作,我要做的就是
1 | virtualenv --no-site-packages testenv |
谢谢!
(第二次编辑)
我也安装了3.2,并且没有问题地进行了测试,所以我想我的问题归结于如何安装缺少的模块。
1 2 3 4 5 6 7 8 9 10 11 12 | jwxie518@jwxie518-P5E-VM-DO:~$ virtualenv -p python3.2 testenv Running virtualenv with interpreter /home/jwxie518/.pythonbrew/pythons/Python-3.2/bin/python3.2 New python executable in testenv/bin/python3.2 Also creating executable in testenv/bin/python Installing distribute..................................................................................................................................................................................................................................................................................................................................done. Installing pip...............done. jwxie518@jwxie518-P5E-VM-DO:~$ virtualenv -p python3.2 --no-site-packages testenv Running virtualenv with interpreter /home/jwxie518/.pythonbrew/pythons/Python-3.2/bin/python3.2 New python executable in testenv/bin/python3.2 Also creating executable in testenv/bin/python Installing distribute..................................................................................................................................................................................................................................................................................................................................done. Installing pip...............done. |
听起来您需要为zlib安装devel软件包,可能想要做类似
1 2 3 | ./configure --prefix=/opt/python2.7 + other options make make install |
您可以检查
1 | python -c"import sysconfig; print sysconfig.get_config_var('CONFIG_ARGS')" |
关键是确保已为系统安装了开发包,以便Python能够构建
默认情况下,配置Python源时,zlib模块是禁用的,因此在配置它时,可以使用选项--with-zlib启用它。所以变成
1 | ./configure --with-zlib |
对于我遇到的情况,我发现make之后缺少模块。所以我做了以下事情:
运行configure后,您可以在文件Modules / Setup中更改config选项,如下所示:
1 | zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz |
或者,您可以按原样取消对zlib行的注释。
安装缺少的zlib dev软件包后,您还可以使用pythonbrew卸载,然后重新安装所需的python版本,似乎它会拾取新软件包以进行编译以更正功能。这样,您可以继续使用pythonbrew,而不必自己进行编译(尽管并不困难)
我在创建虚拟环境(venv)时遇到很多问题,如tensorflow安装指南中所述。
这篇文章中列出的大多数命令也没有帮助我,如果这也是您的情况,这就是我所做的:
安装依赖项以创建虚拟环境
创建一个名为myenv的新目录,但是您可以根据需要调用它,例如mynewenv
或您这样称呼目录的名称:cd [your_directory_name]
在文件夹myenv中创建一个名为venv的虚拟环境。您可以随便呼叫虚拟环境,例如vitualenv [v_env_name]
激活虚拟环境。请注意,如果您选择其他v。env。名称,您的命令应该写成这样的源./[v_env_name]/bin/activate
停用虚拟环境。
注意:我正在使用Python 3.6.6和Ubuntu 18.04
命令的来源
我找到的最简单的解决方案在python.org devguide上给出:
1 | sudo apt-get build-dep python3.6 |
如果该软件包对您的系统不可用,请尝试降低次要版本,直到在系统的软件包管理器中找到可用的软件包为止。
我试图在博客上解释细节。
我的目标是从Ubuntu的命令行中创建一个新的Django项目,如下所示:
1 | django-admin.py startproject mysite |
我安装了python2.7.5。我收到此错误:
1 | ImportError: No module named zlib |
直到现在,我几个小时都找不到解决方案!
这是解决方案的链接-
http://doc.biblissima-condorcet.fr/loris-setup-guide-ubuntu-debian
我遵循并执行了1.1节中的指令,它运行良好!这是一个简单的解决方案。