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.