を手動でソースコード(http://www.zlib.net/)からのzlib をインストールしてみます(YUM/apt-getを/醸造を経て...ない)は役に立つかもしれません。
私は自分のmac devにPython3.6.1のビルドを試みましたが、問題が発生しました。それは作った後に続くメッセージに不平を言う。
Python build finished successfully!
The necessary bits to build these optional modules were not found:
... zlib ...
インタラクティブシェルでもzlibをインポートできません。
>>> import zlib
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'zlib'
私は以下の手順で問題を解決しました。
http://www.zlib.net/を参照し、zlib-1.2.11をダウンロードしてください。
install zlib(解凍、構成、make、make install)。
再インストールPython3.6.1(make clean、make)。
zlibが不足していると不満を募らず、シェルでzlibを正常にインポートできました。
実際、この種の問題を解決するために、ソースコードからいくつかのヒントを見つけることができます。 "setup.py"で次のコードを見つけることができます。コメントはかなり役に立ちます。デバッグ情報を使ってコードを修正して、問題が本当にどこにあるかを見つけることができます(私にとっては、zlib.hが見つからないため最初のif checkが失敗するためです)。ファイルへ
# You can upgrade zlib to version 1.1.4 yourself by going to
# http://www.gzip.org/zlib/
zlib_inc = find_file('zlib.h', [], inc_dirs)
have_zlib = False
if zlib_inc is not None:
zlib_h = zlib_inc[0] + '/zlib.h'
version = '"0.0.0"'
version_req = '"1.1.3"'
if host_platform == 'darwin' and is_macosx_sdk_path(zlib_h):
zlib_h = os.path.join(macosx_sdk_root(), zlib_h[1:])
with open(zlib_h) as fp:
while 1:
line = fp.readline()
if not line:
break
if line.startswith('#define ZLIB_VERSION'):
version = line.split()[2]
break
if version >= version_req:
if (self.compiler.find_library_file(lib_dirs, 'z')):
if host_platform == "darwin":
zlib_extra_link_args = ('-Wl,-search_paths_first',)
else:
zlib_extra_link_args =()
exts.append(Extension('zlib', ['zlibmodule.c'],
libraries = ['z'],
extra_link_args = zlib_extra_link_args))
have_zlib = True
else:
missing.append('zlib')
else:
missing.append('zlib')
else:
missing.append('zlib')
ラン3つのコマンドとリダイレクトそれぞれだ_stdout_(および_stderr_)(例えば: './configureを> configure_out.txt 2>&1 ')、その後、どこかにこれらの3つのファイルにアクセスできるようにします。 _Python_モジュールはどちらも_zlib_に依存しています:あなたは_root_として 'apt install zlib1g zlib1g-dev'(少なくともそれらは_Ubtu16(x64)_のpkg名です)を試してから_Python_を再構築してみてください。 – CristiFati