python2.7没有zlib模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python2.7没有zlib模块相关的知识,希望对你有一定的参考价值。

在CentOS5.5 上更新了python2.7,import zlib提示说没zlib模块,为什么2.7没有?

我是在用Leo的时候发现的,python launchLeo.py的时候

这个模块好像已经没有用到了, 使用easy_install 和 pip 安装都没有搜索到

参考技术A 从官方文档上看到在python2.7中是内置有zlib模块。不知道是否是其他问题? 参考技术B 试试看安装 zlib1g-dev
yum-y install zlib*.x86_64
应该是类似这样的命令吧本回答被提问者采纳

没有名为 zlib 的模块

【中文标题】没有名为 zlib 的模块【英文标题】:no module named zlib 【发布时间】:2011-09-04 09:36:10 【问题描述】:

首先,请多多包涵。我很难告诉别人我的问题,这是一个很长的话题......

我正在使用 pythonbrew 在 Ubuntu 10.10 中运行多个版本的 python。 安装 pythonbrew 及其工作原理,请参考以下链接

http://www.howopensource.com/2011/05/how-to-install-and-manage-different-versions-of-python-in-linux/

看了几个***线程,终于在这个目录下找到了一个叫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。但是,当我尝试 import 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.

【问题讨论】:

我认为 3.2 是不必要的。我刚刚删除了这些内容。对不起。我能够用 3.2 创建 virtualenv,但不是 2.7.1 【参考方案1】:

听起来你需要为 zlib 安装 devel 包,可能想做类似的事情

# ubuntu 12,14,16,18,20.04+
sudo apt-get install zlib1g-dev

您可能想考虑手动编译,而不是使用 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。

【讨论】:

谢谢!你好。我现在会调查其余的。但我只是尝试安装 zlib1g-dev 但似乎我已经安​​装了(我尝试了其他一些命令,如 -f install) zlib1g-dev 已经是最新版本。 zlib1g-dev 设置为手动安装。 到目前为止我得到了很好的结果。我可以使用 pythonbrew 创建 2.7.1。一旦我完成测试,我会检查这个作为答案。谢谢!!! 在 Ubuntu 上,您可以通过运行 sudo apt-get build-dep python 和/或 sudo apt-get build-dep python3 来安装所有 Python 构建依赖项。 更正:sudo apt-get build-dep python2.7sudo apt-get build-dep python3.4 在 centos 7 中使用 $sudo yum install zlib-devel【参考方案2】:

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

./configure --with-zlib

【讨论】:

公平地说,python configure 用于提供--with-zlib 标志;然而,它已经有一段时间没有了。 在 2.7.6 中不起作用,我得到 configure: WARNING: unrecognized options: --with-zlib 不适用于 Python 3.2.5 -> 在这里找到有效答案:***.com/a/15013895/672848【参考方案3】:

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

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

【讨论】:

详细说明第一步 -- sudo yum install zlib-devel (centos) 成功了!我在 ubuntu 12.04 下发布了 [ sudo apt-get install zlib1g-dev ],重新制作了 python 2.7.10,它现在可以工作了。谢谢。【参考方案4】:

安装缺少的 zlib 开发包后,您还可以使用 pythonbrew 卸载然后重新安装您想要的 python 版本,它似乎会选择新的包来编译以纠正功能。这样你就可以继续使用 pythonbrew 而不必自己编译(虽然没那么难)

【讨论】:

【参考方案5】:

运行configure后,你可以改变文件Modules/Setup中的config选项如下:

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

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

【讨论】:

这是我在 Ubuntu 13.10 上构建 python2.2 时发现的唯一对我有用的东西。赞... Python 2.6 也需要 相关:***.com/questions/12344970/…【参考方案6】:

我的目标是在 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 节中的指令,它运行良好!这是一个简单的解决方案。

【讨论】:

【参考方案7】:

我找到的最简单的解决方案在python.orgdevguide 上给出:

sudo apt-get build-dep python3.6

如果该软件包不适用于您的系统,请尝试降低次要版本,直到您在系统的软件包管理器中找到可用的软件包。

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

【讨论】:

【参考方案8】:

我在制作tensorflow installation guide 中所述的虚拟环境 (venv) 时遇到了很多问题。

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

    pip3 install --user pipenv pip install virtualenv

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

    mkdir myenv

创建一个名为 myenv 的新目录,但您可以随意调用它,例如mynewenv

    cd myenv

或者无论你如何称呼你的目录:cd [your_directory_name]

    virtualenv -p /usr/bin/python3 venv

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

    source ./venv/bin/activate

激活虚拟环境。请注意,如果您选择不同的 v. env。命名你的命令应该这样写 source ./[v_env_name]/bin/activate

    deactivate

停用虚拟环境。

注意:我使用的是 Python 3.6.6 和 Ubuntu 18.04

source for the commands

【讨论】:

以上是关于python2.7没有zlib模块的主要内容,如果未能解决你的问题,请参考以下文章

zlib 模块丢失

centos python2.6 升级到python2.7

linux升级python2.7,安装pip,setuptools,zlib

centos python2.6 升级到 python2.7

导入错误:没有名为 django 的模块

安装python2.7