没有名为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线程之后,我终于在这个目录下find了一个名为Setup的文件: 〜/ .pythonbrew / pythons / Python-2.7.1 / lib / python2.7 / config
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中。
但是我对我需要做的事情一无所知。 有人可以指导我在正确的方向? 非常感谢你!
我这样做是因为我想在我创build的不同版本的virtualenv中使用不同版本的python。 当我做了virtualenv -p python2.7我没有收到任何名为zlib的模块。
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,我需要一些这些缺less的模块,例如sqlite3,并创build我的virtualenv我绝对需要zlib。 如果我只是使用系统默认(2.6.6),我没有问题。
要做到这一点与系统默认,我所需要做的是
virtualenv --no-site-packages testenv
谢谢!
(第二编辑)
我也安装了3.2,我testing没有问题,所以我想我的问题归结为如何安装缺less的模块(S)。
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软件包,可能想做一些类似于sudo apt-get install zlib1g-dev
(我不使用Ubuntu,所以你需要仔细检查软件包)。 而不是使用python-brew,你可能想考虑手动编译,这不是很难。 只需下载源代码,然后configure
, make
, make install
。 你至less要设置--prefix
到某个地方,所以它会被安装到你想要的地方。
./configure --prefix=/opt/python2.7 + other options make make install
您可以查看./configure --help
提供哪些configuration选项,并通过执行以查看您的系统python编译的内容:
python -c "import sysconfig; print sysconfig.get_config_var('CONFIG_ARGS')"
关键是要确保你的系统已经安装了开发包,以便Python能够构buildzlib
, sqlite3
等模块。 python文档详细介绍了构build过程: http : //docs.python.org/using/unix.html#building-python 。
默认情况下,在configurationPython源代码时,zlib模块是禁用的,所以您可以在configuration它时使用选项–with-zlib来启用它。 所以它成为
./configure --with-zlib
对于我遇到的情况,我发现制作完成后还有一些缺失的模块。 所以我做了以下几点:
- 安装zlib-devel
- 再次安装python。
运行configure之后,你可以改变文件Modules / Setup中的config选项,如下所示:
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
或者你可以取消注释zlib线。
安装缺less的zlib dev软件包之后,你也可以使用pythonbrew来卸载,然后重新安装你想要的python版本,好像它拿起新的软件包来编译来纠正能力。 这样,你可以继续使用pythonbrew,而不必自己编译(尽pipe这并不困难)
我的目标是从Ubuntu的命令行创build一个新的Django项目,如下所示:
django-admin.py startproject mysite
我已经安装了python2.7.5。 我得到这个错误:
ImportError: No module named zlib
几个小时,我找不到解决scheme,直到现在!
这里是解决scheme的链接 –
http://doc.biblissima-condorcet.fr/loris-setup-guide-ubuntu-debian
我遵循并执行了第1.1节中的指令,并且工作正常! 这是一个简单的解决scheme。
我发现的最简单的解决scheme是在python.org devguide上给出的 :
sudo apt-get build-dep python3.6
如果该软件包不适用于您的系统,请尝试减小次要版本,直至find系统软件包pipe理器中可用的软件包。
我试着在我的博客上解释细节。