gpt4 book ai didi

python - 没有名为 zlib 的模块

转载 作者:IT老高 更新时间:2023-10-28 21:32:45 24 4
gpt4 key购买 nike

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

我正在使用 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。但是,当我尝试 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.

最佳答案

听起来你需要为 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 .

关于python - 没有名为 zlib 的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6169522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com