当我输入“ python3.6 get-pip.py”时,无法修复“ zipimport.ZipImportError:无法解压缩数据; zlib不可用”

时间:2019-07-12 01:42:55

标签: python django python-3.x pip zlib

我正在尝试安装Django。原来,该课程的老师说我们将使用Python 3.6 我安装了Python 3.6。现在是我的默认设置,它在某种程度上替代了我的上一个版本;这是Python 3.5。 一切正常,直到那。但是当我想安装Django时 “ pip3 install django”,它告诉我该模块已经满足并已安装。

我在终端中运行“ python3”命令。它运行Python 3.6。我尝试导入Django,然后繁荣起来……“没有名为“ django”的模块”。

然后我意识到pip3实际上是在将模块安装到Python 3.5中,而不是3.6中。所以我要做的是在Python 3.6中安装pip。

我下载了get-pip.py并继续使用Python 3.6键入“ python3.6 get-pip.py”来执行它。

这是该死的“ zipimport.ZipImportError:无法解压缩数据; zlib不可用”的时候。我尝试了很多事情,但没有人修复%^ $!问题。我真的好累。

我已经尝试过的方法: python3.6 -m pip install django,输出为“ /usr/local/bin/python3.6:没有名为pip的模块”

apt install zlib,输出为“ E:无法找到软件包zlib”

apt install zlib1g-dev,表示已经安装;问题仍然存在。

3 个答案:

答案 0 :(得分:4)

我也遇到了这个问题(在为 pyenv 创建一个简单的安装程序时)。以下是我在 Mac 和 Linux 上的解决方法:

Ubuntu 20.04、18.04

您需要 zlib 开发文件,可能还需要 zlib 本身:

sudo apt install -y zlib1g-dev zlibc

如果您缺少 zlib,那么您可能会遇到的下一个问题是使用 openssl,因此最好现在也获取它:

sudo apt install -y libssl-dev
sudo apt install -y libssl1.1 || sudo apt install -y libssl1.0

macOS

我相信这随 XCode CLI 工具一起提供(或者至少我不必自定义安装它 Big Sur):

xcode-select --install

答案 1 :(得分:1)

建议的解决方案(安装 zlib1g-devzlib-devel)在大多数情况下似乎可以解决问题。这是我最近遇到的一个极端情况:无论您尝试运行什么,都可能通过符号链接使用 zlib,而该符号链接可能已损坏。

在我的例子中,我试图运行一个 3rd-party 软件的构建,它已经有 python 和所有必要的库被嵌入其中。它被打包为 tar.gz 档案。在 Windows 机器上解压存档,然后将内容复制到另一台 linux 机器会破坏所有符号链接(如果您在带有符号链接的文件夹中执行 ls -l,您会看到它们的大小均为 0 并且不指向任何内容)。将 tar.gz 直接复制到 linux 机器并在那里解压解决了问题。

附言请不要投反对票。我知道这是一个边缘情况,但我和另一位开发人员花了很长时间才弄明白,所以我认为这里值得一提,以防有人像我一样倒霉。

答案 2 :(得分:0)

它解决了我的 centos 7.6 问题:- yum 安装 zlib-deve