zipimport.ZipImportError: невозможно распаковать данные; zlib не доступен


60

На RHEL 6.6 я установил Python 3.5.1 из исходного кода. Я пытаюсь установить pip3 через get-pip.py, но получаю

Traceback (most recent call last):
  File "get-pip.py", line 19177, in <module>
    main()
  File "get-pip.py", line 194, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip
zipimport.ZipImportError: can't decompress data; zlib not available

Работает на установленном Python 2.6.6. Я искал ответы в Интернете, но я не могу найти ни одного, который бы работал для меня.

редактировать: yum search zlib

jzlib.i686 : JZlib re-implementation of zlib in pure Java
perl-Compress-Raw-Zlib.i686 : Low-Level Interface to the zlib compression library
perl-Compress-Zlib.i686 : A module providing Perl interfaces to the zlib compression library
perl-IO-Zlib.i686 : Perl IO:: style interface to Compress::Zlib
zlib.i686 : The zlib compression and decompression library
zlib-debuginfo.i686 : Debug information for package zlib
zlib-devel.i686 : Header files and libraries for Zlib development
perl-IO-Compress-Zlib.i686 : Perl interface to allow reading and writing of gzip and zip data

  Name and summary matches only, use "search all" for everything.

Вы можете показать точную команду.
— Дворняга

Можете ли вы искать zlibпакет.
— Дворняга

Я бегу, python3 get-pip.pyчтобы показать сообщение об ошибке выше, но оно работает для python get-pip.py. Да, я могу бежать yum search zlib.
— Flair

Судя по вашим комментариям, у вас установлен zlib, но, возможно, вам нужен обертка python-zlib?
— Эдвард Фальк

Как бы я поступил так?
— Флаер

Ответы:


82

Ubuntu 16.10+ и Python 3.7 dev

sudo apt-get install zlib1g-dev

примечание: я только поместил это здесь, потому что это был лучший результат поиска для ошибки, но это решило мою проблему.

обновление: также случай для Ubuntu 14.04LTS и базового ядра в 4.1+


2
Спасибо! это помогло мне решить проблему с установкой 3.7.1 на Ubuntu 18.04
— daonb

27

Решение: yum install zlib-devel




2
Я попробовал это. Это говорит Setting up Install Process rhel6_latest | 1.9 kB 00:00 Package zlib-devel-1.2.3-29.el6.i686 already installed and latest version Nothing to do, но я все еще получаю ошибку zipimport.
— Flair

не решил мою проблему
— Шринивас Редди Татиарти

Это должен быть текущий ответ. Спасибо
— Jamescampbell

1

у вас нет инструмента распаковки, вы должны установить zlib.

Обновленный ответ

сначала проверьте, установлен ли он

yum list python-gzipstream

Если нет, то запустите ниже для установки

yum install python-gzipstream.noarch

У меня установлено это в моей системе

 yum list python-gzipstream
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.webwerks.com
 * epel: ftp.kddilabs.jp
 * extras: centos.webwerks.com
 * updates: mirror.nbrc.ac.in
Available Packages
python-gzipstream.noarch                                                                1.4.3-1.el6                                                                 epel

4
Я побежал yum install zlib. Я понял, что у меня уже есть последняя версия. Я все еще получаю ту же ошибку.
— Flair

проверьте обновленный ответ
— Mongrel

1
Ибо yum list python-gzipstreamя получаю Error: No matching Packages to list , и yum install python-gzipstream.noarchя получаюNo package python-gzipstream.noarch available. Error: Nothing to do
— Flair

Можете ли вы показать это нам вывод yum repolist& yum search zlib.
— Дворняга

Для реполиста,repo id repo name status rhel6_latest Red Hat Enterprise Linux 6Server - i386 - latest 11,637 repolist: 11,637
— Flair

1

Бросив мои 2цента. Я занимался этой проблемой в течение последних 3 часов и понял, что python3.6 для меня был установлен в / usr / local / bin /.

Я переделал конфигурацию с --prefix == / usr / bin и pip.

Установка собранных пакетов: setuptools, pip Успешно установлена ​​pip-9.0.1 setuptools-28.8.0


1

Просто скопируйте и вставьте этот код :

CFLAGS="-I$(brew --prefix readline)/include -I$(brew --prefix openssl)/include -I$(xcrun --show-sdk-path)/usr/include" \
LDFLAGS="-L$(brew --prefix readline)/lib -L$(brew --prefix openssl)/lib" \
PYTHON_CONFIGURE_OPTS=--enable-unicode=ucs2 \
pyenv install -v 3.6.0

0

zlibМодуль является дополнительной функцией для питона и, кажется , что версия python3.5 в RHEL 6.6 не включает его. Вы можете проверить это:

python3 -c "import zlib"

Таким образом, вам необходимо либо получить версию Python с поддержкой zlib (или библиотеки Python), либо перестроить Python из исходного кода с включенной функцией zlib - см. Здесь справку: https://stackoverflow.com/questions/12344970/building-python -из-источник-с ZLIB-поддержкой

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.