53

Ubuntu 12.04 でソースから Python 3.2.3 をビルドする場合、zlib モジュールは使用できません。

python.org から公式のソース ディストリビューションをダウンロードし、次のコマンドでビルドとインストールを試みました。

tar xfa Python3.2.3.tar.bz2
cd Python-3.2.3
./configure --prefix=/opt/python3.2
make
sudo make install

make コマンドの出力には、次のものが含まれます。

Python build finished, but the necessary bits to build these modules were not found:
_curses            _curses_panel      _dbm            
_gdbm              _sqlite3           _ssl            
_tkinter           bz2                readline        
zlib                                            

make installインタープリターを実行して開始した後、zlibモジュールをインポートできません。

zlib1g-devパッケージがシステムにインストールされていることを確認しました。

コマンドにフラグを追加することを提案するこの同様の質問も見つけました。ただし、それは認識されないオプションであり、効果がないというエラーを返します。--with-zlib./configure

4

10 に答える 10

95

CentOS 6.3とpython 3.2.3でも同様の問題がありました

私はそれを解決しました:

次の行を編集/Modules/Setupしてコメントを外します。

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

ディレクトリ /Modules/zlib に移動します。

./configure
make
sudo make install

次に、python3.2 ソースをコンパイルしました。

その後、インポートzlibをテストすることができ、すべて正常に機能しました:)

于 2013-02-21T23:01:06.510 に答える
19

CentOS 6.6 を使用していますが、zlib エラーが発生していました。ここで提案された他の回答はどれもうまくいきませんでした(モジュール/セットアップの行のコメントを外すCentOS 6.3の修正を含む)。次のコマンドを使用して修正しました。

yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

次に、次のように python を構成してインストールします。

./configure --prefix=/usr/local LDFLAGS="-Wl,-rpath /usr/local/lib"
make && make altinstall

/usr/local/bin/python2.7 に zlib を問題なくインポートできるようになりました。

これらの手順は、ここにある記事からわずかに変更されています。

于 2014-11-25T17:04:42.527 に答える
17

解決策は、Ubuntu パッケージをインストールすることdpkg-devです。

sudo apt-get install dpkg-dev

その理由をここで説明します。

つまり、最近のバージョンの Ubuntu はlibz.so標準の/usr/lib場所ではなく、プラットフォーム固有の場所に保存されます。たとえば、私のシステムでは is in/usr/lib/x86_64-linux-gnuです。これにより、Python のビルド システムがそれを見つけることができなくなります。

dpkg-devパッケージは実行可能ファイルをインストールします。dpkg-architectureこれにより、Python は必要なライブラリを見つけることができます。

元の質問は Python 3.2.3 に関するものでした。Python 2.7.3 もダウンロードし、同様の問題が存在することを確認しましたが、この解決策も適用できます。

于 2012-09-10T03:16:14.477 に答える
6

Python 3.5.1 のインストールに役立つ唯一の解決策は、apt-get zlib1g-dev (および python-setuptools や python-pip などの他のパッケージ) を取得し、ソースから python 3.5.1 を再構築することでした。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libssl-dev openssl
cd ~
mkdir build
cd build
wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
tar -zxvf Python-3.5.1.tgz
cd Python-3.5.1
./configure
make
sudo make install

から取得: https://github.com/MrYsLab/xideco/wiki/Installing-Python-3.5

私が理解しているように、Pythonの新しいビルドは、以前にaptで取得した関連パッケージを含めて作成されています。したがって、新しい Python-3.5.1/lib/site-packages のコンテンツを参照すると、pip と setuptools があります。さらに重要なことに、それらは Python-3.5.1 を使用して作成したすべての virtualenv にコピーされ、この virtualenv は system-default の代わりに THEM を使用します。これは、新しい python バージョンをインストールするときに覚えておくことが非常に重要です。そうしないと、次のようなエラーのブラック ホールに陥る可能性があります。

  • zlib がインストールされていません。
  • "pip install ..." は virtualenv ではなく system-default python にパッケージをインストールする virtualenv から実行されます。
于 2016-04-11T18:34:19.680 に答える
4

MACで作業中に同じエラーが発生しました

私のMAC OSのバージョン

$ uname -v
Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64

ここではpython3.4を使用

問題)

  1. python3.4 を使用している間は zlib を使用できません

    $ python3.4 get-pip.py トレースバック (最新の呼び出しが最後): ファイル "get-pip.py"、20204 行目、main() ファイル "get-pip.py"、152 行目、メイン ブートストラップ (tmpdir) =tmpdir) ファイル "get-pip.py"、82 行目、ブートストラップ インポート pip zipimport.ZipImportError: データを解凍できません。zlib は利用できません

  2. Python の再構築が失敗する

    ./configure --with-zlib-dir=/usr/local/lib

... 構成: 警告: 認識されないオプション: --with-zlib-dir ...

解決

  1. zlib がインストールされていることを確認します。デフォルトでは /usr/lib にインストールされます

    ls /usr/lib/libz.*

インストールされていない場合は、i) zlib.net サイトから、または ii) 以下のような git リポジトリからダウンロードしてインストールします。

git clone https://github.com/madler/zlib.git 

またはiii)。Python ソース ディレクトリ Modules/zlib にある zlib ソースを使用します。

b. zlib をインストールする

./configure --prefix=/usr/local
make
sudo make install 

2.「#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz」の下の行のコメントを外して、/Module/Setup を編集します。

3.Python3.4をソースから再ビルドする

cd ${PYTHON_SRC_CODE_DIR}  
./configure --prefix=${PYTHON_HOME_DIR}
make
sudo make install 

4.インストールの確認 gzip は zlib に依存することに注意してください。

nbr_repeation=100
f=open("some_file.txt","at")
for line in range(nbr_repeation): 
    print('[{}] This file will be compressed using python zlib/gzipmodule'.format(line),file=f)

f.close()
f=open("some_file.txt","rt")
import gzip
gz=gzip.open('some_file.gz', 'wt') 
for line in f : gz.write(line)

gz.close() # Like to be clean exit
f.close()  # Like a clean exit

"""confirm the creation of the compressed gzip files"""
import os
print([ (file,os.stat(file)[6],"bytes") for file in os.listdir(".") if file.startswith("some")])
于 2015-02-16T22:16:15.930 に答える
1
sudo apt-get install build-essential python-dev

python-dev は python2.7 用ですが、必要な依存関係をすべて取り込みます。

次に、次のことを行う必要があります。

./configure
make
sudo make install

python3を再構築するには

于 2014-04-02T13:02:42.103 に答える