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?
Едвард Фолк

Як би я пішов робити це?
Flair

Відповіді:


82

Ubuntu 16.10+ та Python 3.7 розробник

sudo apt-get install zlib1g-dev

Зауважте: я ставлю це лише тому, що це був головний результат пошуку помилки, але це вирішило мою проблему.

оновлення: також справа для ubuntu 14.04LTS та базове ядро ​​на 4.1+


2
Дякую! це допомогло мені вирішити проблему, встановивши 3.7.1 на Ubuntu 18.04
грудні

26

Рішення: # 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.
Чуття

не вирішив моєї проблеми
Шрінівас Редді Татіпарті

Це має бути поточною відповіддю. Спасибі
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
Флер

чи можете ви показати нам вихід 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 (або бібліотеки python) з включеною функцією zlib або відновити python з джерела з увімкненою функцією zlib - див. Тут допомогу: https://stackoverflow.com/questions/12344970/building-python -від-джерело-зі-zlib-підтримка

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.