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.