Нет модуля с именем 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.
Ответы
Ответ 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
Если этот пакет недоступен для вашей системы, попробуйте уменьшить второстепенную версию до тех пор, пока не найдете пакет, доступный в диспетчере системных пакетов.
Я попытался объяснить подробности, мой блог.