Подтвердить что ты не робот

Нет модуля с именем 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 я наконец нашел файл под названием "Установка" в этом каталоге: ~/.pythonbrew/pythons/Python-2.7.1/lib/python2.7/config

In this Setup file I see 
# Andrew Kuchling 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, которые я создал. Когда я сделал 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

Спасибо!


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

Я также установил 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.
4b9b3361

Ответ 1

Похоже, вам нужно установить пакет 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 -c "import sysconfig; print sysconfig.get_config_var('CONFIG_ARGS')"

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

Ответ 2

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

./configure --with-zlib

Ответ 3

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

  • установить zlib-devel
  • снова создать и установить python.

Ответ 4

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

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

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

sudo apt-get build-dep python3.6

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

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