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 安装都没有搜索到
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,这并不难。只需下载源代码和configure
、make
、make 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 能够构建 zlib
、sqlite3
等模块。 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.7
和 sudo apt-get build-dep python3.4
。
在 centos 7 中使用 $sudo yum install zlib-devel【参考方案2】:
默认情况下,当您配置 Python 源时,zlib 模块是禁用的,因此您可以在配置时使用选项 --with-zlib 启用它。于是就变成了
./configure --with-zlib
【讨论】:
公平地说,pythonconfigure
用于提供--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模块的主要内容,如果未能解决你的问题,请参考以下文章
linux升级python2.7,安装pip,setuptools,zlib