没有名为zlib的模块

时间:2011-05-29 18:16:41

标签: python virtualenv zlib ubuntu-10.10

首先,请耐心等待。我很难告诉别人我的问题,这是一个很长的线索......

我正在使用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

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的模块。

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),我没有问题。

要使用系统默认设置执行此操作,我需要做的只是

virtualenv --no-site-packages testenv

谢谢!


(第二次修改)

我也安装了3.2,我测试没有问题,所以我想我的问题归结为如何安装缺少的模块。

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.

8 个答案:

答案 0 :(得分:30)

听起来你需要为zlib安装devel包,可能想做sudo apt-get install zlib1g-dev之类的事情(我不使用ubuntu所以你要仔细检查一下包)。你可能不想使用python-brew而只是考虑手工编译,这不是很难。只需下载源代码,configuremakemake install即可。您至少需要将--prefix设置为某个地方,因此它会安装到您想要的位置。

./configure --prefix=/opt/python2.7 + other options
make
make install

您可以查看./configure --help可用的配置选项,看看您的系统python是通过以下方式编译的:

python -c "import sysconfig; print sysconfig.get_config_var('CONFIG_ARGS')"

关键是要确保为系统安装了开发包,以便Python能够构建zlibsqlite3等模块。 python文档更详细地介绍了构建过程:http://docs.python.org/using/unix.html#building-python

答案 1 :(得分:22)

默认情况下,在配置Python源时,zlib模块已禁用,因此您可以在配置时使用 - with-zlib 选项启用它。所以它变成

./configure --with-zlib

答案 2 :(得分:18)

对于我遇到的情况,我发现make之后缺少模块。所以我做了以下事情:

  1. 安装zlib-devel
  2. 再次制作并安装python。

答案 3 :(得分:9)

运行configure后,您可以在模块/设置文件中更改配置选项,如下所示:

zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

或者您可以按原样取消注释zlib行。

答案 4 :(得分:3)

安装缺少的zlib开发包之后,你也可以使用pythonbrew卸载然后重新安装你想要的python版本,看起来好像它拿起新包来编译以纠正能力。这样你可以继续使用pythonbrew而不必自己编译(尽管并不困难)

答案 5 :(得分:0)

我的目标是从Ubuntu的命令行创建一个新的Django项目,如下所示:

django-admin.py startproject mysite

我安装了python2.7.5。我收到了这个错误:

ImportError: No module named zlib

直到现在,我几个小时都找不到解决方案!

以下是解决方案的链接 -

http://doc.biblissima-condorcet.fr/loris-setup-guide-ubuntu-debian

我遵循并执行了第1.1节中的指令,它运行得非常好!这是一个简单的解决方案。

答案 6 :(得分:0)

我找到的最简单的解决方案是python.org devguide:

sudo apt-get build-dep python3.6

如果您的系统无法使用该软件包,请尝试减少次要版本,直至找到系统软件包管理器中提供的软件包。

我尝试在my blog上解释详细信息。

答案 7 :(得分:0)

按照tensorflow installation guide所述,在创建虚拟环境(venv)时遇到很多问题。

这篇文章中列出的大多数命令也没有帮助我,如果这也是您的情况,这就是我所做的:

  1. pip3 install --user pipenv
  2. pip install virtualenv

安装依赖项以创建虚拟环境

  1. mkdir myenv

创建一个名为 myenv 的新目录,但是您可以根据需要调用该目录,例如 mynewenv

  1. cd myenv

或您这样称呼您的目录,例如:cd [您的目录名称]

  1. virtualenv -p /usr/bin/python3 venv

在文件夹 myenv 中创建一个名为 venv 的虚拟环境。您可以随便呼叫虚拟环境,例如vitualenv [v_env_name]

  1. source ./venv/bin/activate

激活虚拟环境。请注意,如果您选择其他v。env。您的命令名称应写为 source ./ [v_env_name] / bin / activate

  1. deactivate

停用虚拟环境。

注意:我正在使用Python 3.6.6和Ubuntu 18.04

source for the commands