нет модуля с именем zlib

Во-первых, пожалуйста, потерпите меня. Мне трудно рассказывать другим о своей проблеме, и это длинная тема...

Я использую pythonbrew для запуска нескольких версий Python в Ubuntu 10.10. Для установки pythonbrew и того, как он работает, перейдите по этой ссылке ниже.

http://www.howopensource.com/2011/05/как-установить-и-управлять-разными-версиями-из-python-в-linux/

Прочитав пару потоков stackoverflow, я наконец нашел файл с именем Setup в этом каталоге: ~/.pythonbrew/pythons/Python-2.7.1/lib/python2.7/config

In this Setup file I see 
# Andrew Kuchling's zlib module.
# This require zlib 1.1.3 (or later).
# See http://www.gzip.org/zlib/
# zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

Я раскомментировал последнюю строку и снова запустил python -v. Однако я получил ту же ошибку, когда попытался импортировать zlib, поэтому, думаю, мне нужно что-то сделать, чтобы установить zlib в библиотеку.

Но я понятия не имею, что мне нужно делать. Может ли кто-нибудь направить меня в правильном направлении??? Большое тебе спасибо!

Я делаю это, потому что хочу использовать разные версии Python в разных созданных мной виртуальных средах. Когда я сделал virtualenv -p python2.7, я не получил модуль с именем zlib.

jwxie518@jwxie518-P5E-VM-DO:~$ virtualenv -p python2.7 --no-site-packages testenv

Running virtualenv with interpreter /home/jwxie518/.pythonbrew/pythons/Python-2.7.1/bin/python2.7

Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 17, in <module>
    import zlib

ImportError: No module named zlib

ИЗМЕНИТЬ

Мне нужно установить 2.7.1, добавив --force.

Я разрабатываю Django, и мне нужны некоторые из этих недостающих модулей, например sqlite3, а для создания моего virtualenv мне обязательно нужен zlib. Если я просто использую систему по умолчанию (2.6.6), у меня нет проблем.

Чтобы сделать это с системой по умолчанию, все, что мне нужно сделать, это

virtualenv --no-site-packages testenv

Спасибо!


(2-е редактирование)

Я также установил 3.2 и протестировал его без проблем, поэтому я думаю, что моя проблема сводится к тому, как установить отсутствующие модули.

jwxie518@jwxie518-P5E-VM-DO:~$ virtualenv -p python3.2  testenv
Running virtualenv with interpreter /home/jwxie518/.pythonbrew/pythons/Python-3.2/bin/python3.2
New python executable in testenv/bin/python3.2
Also creating executable in testenv/bin/python
Installing distribute..................................................................................................................................................................................................................................................................................................................................done.
Installing pip...............done.
jwxie518@jwxie518-P5E-VM-DO:~$ virtualenv -p python3.2 --no-site-packages testenv
Running virtualenv with interpreter /home/jwxie518/.pythonbrew/pythons/Python-3.2/bin/python3.2
New python executable in testenv/bin/python3.2
Also creating executable in testenv/bin/python
Installing distribute..................................................................................................................................................................................................................................................................................................................................done.
Installing pip...............done.

person CppLearner    schedule 29.05.2011    source источник
comment
3.2 думаю не нужен. я просто удалил это содержимое. Извините. я смог создать virtualenv с 3.2, но не 2.7.1   -  person CppLearner    schedule 29.05.2011


Ответы (8)


Похоже, вам нужно установить пакет devel для zlib, вероятно, вы хотите сделать что-то вроде

# ubuntu 12,14,16,18,20.04+
sudo apt-get install zlib1g-dev

Вместо использования python-brew вы можете просто скомпилировать вручную, это не очень сложно. Просто скачайте исходники и configure, make, make install. Вы захотите, по крайней мере, установить --prefix где-нибудь, чтобы он был установлен там, где вы хотите.

./configure --prefix=/opt/python2.7 + other options
make
make install

Вы можете проверить, какие параметры конфигурации доступны с помощью ./configure --help, и посмотреть, с чем был скомпилирован ваш системный python, выполнив следующие действия:

python -c "import sysconfig; print sysconfig.get_config_var('CONFIG_ARGS')"

Главное — убедиться, что у вас установлены пакеты разработки для вашей системы, чтобы Python мог создавать модули zlib, sqlite3 и т. д. Документация по python более подробно описывает процесс сборки: http://docs.python.org/using/unix.html#building-python.

person zeekay    schedule 29.05.2011
comment
Благодарность! Привет. сейчас посмотрю остальное. но я только что попытался установить zlib1g-dev, но, похоже, он у меня уже установлен (я пробовал несколько других команд, таких как -f install) zlib1g-dev уже самая новая версия. zlib1g-dev настроен на установку вручную. - person CppLearner; 30.05.2011
comment
пока я получаю хороший результат. я могу создать с 2.7.1, используя pythonbrew. я проверю это как ответ, как только закончу тестирование. Благодарность!!! - person CppLearner; 30.05.2011
comment
В Ubuntu вы можете установить все зависимости сборки Python, запустив sudo apt-get build-dep python и/или sudo apt-get build-dep python3. - person Theron Luhn; 12.12.2014
comment
Исправление: sudo apt-get build-dep python2.7 и sudo apt-get build-dep python3.4. - person Theron Luhn; 14.12.2014
comment
В Centos 7 используйте $sudo yum install zlib-devel - person Andrew Kloos; 24.06.2015
comment
Столкнулся с той же проблемой на osX, как это исправить? так как невозможно использовать apt-get install xxx для установки zlib - person Shawn Zhang; 29.10.2018

По умолчанию при настройке исходного кода Python модуль zlib отключен, поэтому вы можете включить его с помощью параметра --with-zlib при настройке. Так становится

./configure --with-zlib
person azwar    schedule 28.02.2012
comment
Честно говоря, питон configure раньше предоставлял флаг --with-zlib; это не в течение достаточно долгого времени, как бы то ни было. - person smcphill; 20.12.2012
comment
Не работает в 2.7.6, я получаю настройку: ПРЕДУПРЕЖДЕНИЕ: нераспознанные параметры: --with-zlib - person Pawel Miech; 29.12.2013
comment
Не работает с Python 3.2.5 - здесь найден правильный ответ: stackoverflow.com/a/15013895/672848 - person gecco; 20.08.2014

В случае, с которым я столкнулся, я обнаружил, что после make отсутствуют модули. Поэтому я сделал следующее:

  1. установить zlib-devel
  2. сделать и установить python снова.
person jawjaway    schedule 19.06.2012
comment
чтобы уточнить этот первый шаг -- sudo yum install zlib-devel (centos) - person J-Dizzle; 11.12.2015
comment
Это сработало! Я выпустил [ sudo apt-get install zlib1g-dev ] под Ubuntu 12.04, переделал Python 2.7.10, и теперь все заработало. Спасибо. - person JohnnyLinTW; 15.03.2016

После запуска configure вы можете изменить параметр конфигурации в файле Modules/Setup, как показано ниже:

zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

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

person YYDywc    schedule 18.08.2013
comment
Это было единственное, что мне помогло при сборке python2.2 на Ubuntu 13.10. Престижность... - person Danimal; 11.03.2014
comment
Также необходимо для Python 2.6 - person spookylukey; 17.03.2014
comment
Связано: stackoverflow.com/questions /12344970/ - person minghua; 19.11.2020

После того, как вы установите отсутствующий пакет zlib dev, вы также можете использовать pythonbrew для удаления, а затем переустановить нужную версию python, и кажется, что он подбирает новый пакет для компиляции с правильными способностями. Таким образом, вы можете продолжать использовать pythonbrew и не будете выполнять компиляцию самостоятельно (хотя это не так сложно)

person dnfehren    schedule 20.09.2012

У меня было много проблем с созданием виртуальной среды (venv), как описано в руководстве по установке tensorflow .

Большинство команд, перечисленных в этом посте, мне тоже не помогли, поэтому, если это тоже ваш случай, я сделал следующее:

  1. pip3 install --user pipenv
  2. pip install virtualenv

Устанавливает зависимости для создания виртуальной среды

  1. mkdir myenv

Создает новый каталог с именем myenv, но вы можете назвать его как хотите, например. mynewenv

  1. cd myenv

Или как бы вы ни назвали свой каталог: cd [your_directory_name]

  1. virtualenv -p /usr/bin/python3 venv

Создает виртуальную среду с именем venv в папке myenv. Вы можете называть свою виртуальную среду как угодно, например. vitualenv [v_env_name]

  1. source ./venv/bin/activate

Активирует виртуальную среду. Обратите внимание, что если вы выберете другой v. env. имя ваших команд должно быть написано как source ./[v_env_name]/bin/activate

  1. deactivate

Деактивирует виртуальную среду.

Примечание. Я использую Python 3.6.6 и Ubuntu 18.04.

источник команд

person FlyingZipper    schedule 23.09.2018

Самое простое решение, которое я нашел, приведено на python.org devguide:

sudo apt-get build-dep python3.6

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

Я попытался объяснить детали на моем блог.

person shibli049    schedule 30.12.2016

Моя цель состояла в том, чтобы создать новый проект Django из командной строки в Ubuntu, например:

django-admin.py startproject mysite

У меня установлен python2.7.5. Я получил эту ошибку:

ImportError: No module named zlib

В течение нескольких часов я не мог найти решение, до сих пор!

Вот ссылка на решение -

http://doc.biblissima-condorcet.fr/loris-setup-guide-ubuntu-debian

Я следовал и выполнял инструкции в Разделе 1.1, и все работает отлично! Это простое решение.

person PowerRanger100    schedule 27.02.2014