Pythonインストール時の「make altinstall」で「zipimport.ZipImportError: can’t decompress data」
今回はPythonをバージョン指定してインストールする際にmake altinstallを叩く工程がある場合がありますが、make altinstallしたときに下記のエラーが出たときの対処法についてご紹介していこうと思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
/usr/bin/install -c -m 644 ./Misc/python.man \ /opt/python3/share/man/man1/python3.8.1 if test "xupgrade" != "xno" ; then \ case upgrade in \ upgrade) ensurepip="--altinstall --upgrade" ;; \ install|*) ensurepip="--altinstall" ;; \ esac; \ ./python -E -m ensurepip \ $ensurepip --root=/ ; \ fi Traceback (most recent call last): File "<frozen zipimport>", line 520, in _get_decompress_func ModuleNotFoundError: No module named 'zlib' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<frozen zipimport>", line 568, in _get_data File "<frozen zipimport>", line 523, in _get_decompress_func zipimport.ZipImportError: can't decompress data; zlib not available During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<string>", line 6, in <module> File "/usr/src/Python-3.8.13/Lib/runpy.py", line 203, in run_module mod_name, mod_spec, code = _get_module_details(mod_name) File "/usr/src/Python-3.8.13/Lib/runpy.py", line 144, in _get_module_details return _get_module_details(pkg_main_name, error) File "/usr/src/Python-3.8.13/Lib/runpy.py", line 111, in _get_module_details __import__(pkg_name) File "<frozen zipimport>", line 241, in load_module File "<frozen zipimport>", line 709, in _get_module_code File "<frozen zipimport>", line 570, in _get_data zipimport.ZipImportError: can't decompress data; zlib not available Traceback (most recent call last): File "/usr/src/Python-3.8.13/Lib/runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "/usr/src/Python-3.8.13/Lib/runpy.py", line 87, in _run_code exec(code, run_globals) File "/usr/src/Python-3.8.13/Lib/ensurepip/__main__.py", line 5, in <module> sys.exit(ensurepip._main()) File "/usr/src/Python-3.8.13/Lib/ensurepip/__init__.py", line 204, in _main return _bootstrap( File "/usr/src/Python-3.8.13/Lib/ensurepip/__init__.py", line 123, in _bootstrap return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths) File "/usr/src/Python-3.8.13/Lib/ensurepip/__init__.py", line 32, in _run_pip return subprocess.run([sys.executable, "-c", code], check=True).returncode File "/usr/src/Python-3.8.13/Lib/subprocess.py", line 516, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '['/usr/src/Python-3.8.13/python', '-c', '\nimport runpy\nimport sys\nsys.path = [\'/tmp/tmpmqatzem_/setuptools-56.0.0-py3-none-any.whl\', \'/tmp/tmpmqatzem_/pip-22.0.4-py3-none-any.whl\'] + sys.path\nsys.argv[1:] = [\'install\', \'--no-cache-dir\', \'--no-index\', \'--find-links\', \'/tmp/tmpmqatzem_\', \'--root\', \'/\', \'--upgrade\', \'setuptools\', \'pip\']\nrunpy.run_module("pip", run_name="__main__", alter_sys=True)\n']' returned non-zero exit status 1. make: *** [Makefile:1208: altinstall] Error 1 |
環境はDockerを使っていて、OSはAlmaLinux9.3、インストールしようとしたPythonは3.8.13です。
Pythonインストール時の「make altinstall」で「zipimport.ZipImportError: can’t decompress data」
結論から言うと、zlib-develをインストールしましょう。
1 |
dnf install zlib-devel -y |
これで冒頭のエラーは起きなくなります。
CentOSや今回のAlmaLinuxなど、RHEL系のLinuxディストリビューションでバージョンを指定してPythonをインストールしようとしたときに直面する可能性のあるエラーでした。
終わりに
今回はPythonをバージョン指定してインストールする際にmake altinstallを叩く工程がある場合がありますが、make altinstallしたときに冒頭のエラーが出たときの対処法についてご紹介いたしました。
ディスカッション
コメント一覧
まだ、コメントがありません