it-roy-ru.com

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

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

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

http://www.howopensource.com/2011/05/how-to-install-and-manage-different-versions-of-python-in-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. Тем не менее, я получил ту же ошибку при попытке import zlib, поэтому я думаю, что мне нужно что-то сделать, чтобы установить zlib в lib. 

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

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

[email protected]:~$ 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 и протестировал его без проблем, так что я думаю, что моя проблема сводится к тому, как установить отсутствующие модули.

[email protected]:~$ 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.
[email protected]:~$ 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.
40
CppLearner

Похоже, вам нужно установить пакет devel для zlib, возможно, вы хотите сделать что-то вроде Sudo apt-get install zlib1g-dev (я не использую ubuntu, поэтому вы захотите перепроверить пакет). Вместо того, чтобы использовать 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 .

29
zeekay

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

./configure --with-zlib
21
azwar

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

  1. установить zlib-devel
  2. снова создайте и установите Python.
18
jawjaway

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

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

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

9
YYDywc

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

3
dnfehren

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

Sudo apt-get build-dep python3.6

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

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

0
shibli049

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

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

  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. Вы можете называть свой виртуальный env как угодно, например, 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

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

0
FlyingZipper

Моей целью было создать новый проект 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, и она работает отлично! Это простое решение.

0
PowerRanger100