Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 没有名为zlib的模块_Python_Virtualenv_Zlib_Ubuntu 10.10 - Fatal编程技术网

Python 没有名为zlib的模块

Python 没有名为zlib的模块,python,virtualenv,zlib,ubuntu-10.10,Python,Virtualenv,Zlib,Ubuntu 10.10,首先,请容忍我。我很难告诉别人我的问题,这是一条很长的线索 我使用pythonbrew在ubuntu10.10中运行多个版本的python。 有关安装pythonbrew及其工作原理,请参考下面的链接 在阅读了几个stackoverflow线程之后,我终于在这个目录下找到了名为Setup的文件:~/.pythonbrew/pythons/Python-2.7.1/lib/python2.7/config In this Setup file I see # Andrew Kuchling's

首先,请容忍我。我很难告诉别人我的问题,这是一条很长的线索

我使用pythonbrew在ubuntu10.10中运行多个版本的python。 有关安装pythonbrew及其工作原理,请参考下面的链接

在阅读了几个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
谢谢


(第二次编辑)

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


听起来您需要为zlib安装devel包,可能需要执行类似于
sudo apt get install zlib1g dev
(我不使用ubuntu,所以您需要仔细检查该包)。而不是使用Python BREW,你可能想考虑手工编译,这不是很难。只需下载源代码,然后
配置
制作
制作安装
。您至少需要将
--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文档更详细地介绍了构建过程:。

默认情况下,在配置python源代码时,zlib模块处于禁用状态,因此您可以在配置它时使用选项--with zlib启用它。所以它变成了

./configure --with-zlib

对于我遇到的案例,我发现make后缺少模块。因此,我做了以下工作:

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

  • 安装丢失的zlib-dev软件包后,还可以使用pythonbrew卸载并重新安装所需的python版本,它似乎会选择新的软件包进行编译以获得正确的功能。这样,您就可以继续使用pythonbrew,而不必自己进行编译(虽然没有那么困难)

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

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

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

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

    django-admin.py startproject mysite
    
    我已经安装了python2.7.5。我得到了这个错误:

    ImportError: No module named zlib
    
    好几个小时我都找不到解决办法,直到现在

    以下是解决方案的链接-


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

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

    sudo apt-get build-dep python3.6
    
    如果该软件包不适用于您的系统,请尝试减少次要版本,直到在系统的软件包管理器中找到可用的软件包


    我试着在上解释细节。

    我在创建虚拟环境(venv)时遇到了很多问题,如中所述

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

  • pip3安装——用户pipenv
  • pip安装virtualenv
  • 安装依赖项以创建虚拟环境

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

  • cd-myenv
  • 或者不管你怎么称呼你的目录:cd[你的目录名]

  • virtualenv-p/usr/bin/python3-venv
  • 在文件夹myenv中创建名为venv的虚拟环境。您可以随意调用虚拟环境,例如vitualenv[v_env_name]

  • source./venv/bin/activate
  • 激活虚拟环境。请注意,如果选择不同的v。环境。命名您的命令应作为此类源编写。/[v_env_name]/bin/activate

  • 停用
  • 停用虚拟环境

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


    我认为3.2是不必要的。我刚刚删除了那些内容。很抱歉我能够用3.2创建virtualenv,但不是2.7.1!你好我现在会调查其余的。但是我刚刚尝试安装zlib1gdev,但是看起来我已经安装了(我尝试了一些其他命令,比如-f install)zlib1gdev已经是最新版本了。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-develTo是公平的,python
    configure
    用于提供
    --with zlib
    标志;但是,它已经有一段时间没有出现了。在2.7.6中不起作用,我得到了配置:警告:无法识别的选项:-使用zlibNot与Python 3.2.5一起工作->在这里找到了有效的答案:这是我在Ubuntu 13.10上构建python2.2时发现的唯一对我起作用的东西。荣誉…也需要
    ImportError: No module named zlib
    
    sudo apt-get build-dep python3.6