1. ホーム
  2. python

[解決済み] zlib という名前のモジュールはありません。

2022-02-16 21:26:24

質問

まず、ご容赦ください。私は自分の問題を他人に話すのが苦手で、このスレッドも長くなってしまいました...。

Ubuntu 10.10で複数のバージョンのpythonを実行するためにpythonbrewを使用しています。 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 もう一度 しかし、次のようにすると、同じエラーが発生しました。 インポート zlib ということは、zlibをlibにインストールするために何かしなければならないのでしょう。

しかし、私は何をしなければならないかについて無知である。どなたか正しい方向に導いていただけませんか?どうもありがとうございました。

私は作成したvirtualenvで異なるバージョンの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


EDIT

2.7.1を-forceを付けてインストールする必要があります。

私はDjangoを開発しており、これらの不足しているモジュールのいくつかが必要です、例えばsqlite3、そして私の仮想環境を作成するには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.

解決方法は?

zlibのdevelパッケージをインストールする必要があるようですが、おそらく次のようなことをしたいのでしょう。

# 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 .