如何解决pyenv install 3.x BUILD FAILED (Ubuntu 20.04 using python-build 20180424) 使用'python-build: use readline from homebrew'
尝试在 pyenv 上安装带有 Ubuntu 20.04 WSL for Windows 10 的新 Python
版本失败并显示以下输出:
username@hd1pcms0347:~$ pyenv install 3.9.4
Downloading Python-3.9.4.tar.xz...
-> https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tar.xz
Installing Python-3.9.4...
python-build: use readline from homebrew
BUILD FAILED (Ubuntu 20.04 using python-build 20180424)
Inspect or clean up the working tree at /tmp/python-build.20210602162502.2268
Results logged to /tmp/python-build.20210602162502.2268.log
Last 10 log lines:
File "/tmp/python-build.20210602162502.2268/Python-3.9.4/Lib/ensurepip/__init__.py",line 210,in _main
return _bootstrap(
File "/tmp/python-build.20210602162502.2268/Python-3.9.4/Lib/ensurepip/__init__.py",line 129,in _bootstrap
return _run_pip(args + [p[0] for p in _PROJECTS],additional_paths)
File "/tmp/python-build.20210602162502.2268/Python-3.9.4/Lib/ensurepip/__init__.py",line 38,in _run_pip
return subprocess.run([sys.executable,"-c",code],check=True).returncode
File "/tmp/python-build.20210602162502.2268/Python-3.9.4/Lib/subprocess.py",line 528,in run
raise CalledProcessError(retcode,process.args,subprocess.CalledProcessError: Command '['/tmp/python-build.20210602162502.2268/Python-3.9.4/python','-c','\nimport runpy\nimport sys\nsys.path = [\'/tmp/tmp7aa5f7ml/setuptools-49.2.1-py3-none-any.whl\',\'/tmp/tmp7aa5f7ml/pip-20.2.3-py2.py3-none-any.whl\'] + sys.path\nsys.argv[1:] = [\'install\',\'--no-cache-dir\',\'--no-index\',\'--find-links\',\'/tmp/tmp7aa5f7ml\',\'--root\',\'/\',\'--upgrade\',\'setuptools\',\'pip\']\nrunpy.run_module("pip",run_name="__main__",alter_sys=True)\n']' returned non-zero exit status 1.
make: *** [Makefile:1255: install] Error 1
可以在以下 GoogleDrive-Link 下查看整个日志文件(因为 StackOverflow 中只能共享图片):
https://drive.google.com/file/d/1MKfRPy5-PWOGMW7ui-OaZiSmSopZV4hh/view?usp=sharing
解决方法
这些是您日志的相关部分:
[...]
In file included from /tmp/python-build.20210602162502.2268/Python-3.9.4/Modules/_cursesmodule.c:113:
./Include/py_curses.h:36:10: fatal error: curses.h: No such file or directory
36 | #include <curses.h>
| ^~~~~~~~~~
compilation terminated.
[...]
/tmp/python-build.20210602162502.2268/Python-3.9.4/Modules/_ctypes/_ctypes.c:107:10: fatal error: ffi.h: No such file or directory
107 | #include <ffi.h>
| ^~~~~~~
compilation terminated.
Python build finished successfully!
The necessary bits to build these optional modules were not found:
_bz2 _curses_panel _dbm
_gdbm _lzma _sqlite3
_tkinter _uuid zlib
To find the necessary bits,look in setup.py in detect_modules() for the module's name.
The following modules found by detect_modules() in setup.py,have been
built by the Makefile instead,as configured by the Setup files:
_abc atexit pwd
time
Failed to build these modules:
_ctypes _curses
[...]
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
[...]
您似乎缺少构建的一些依赖项。
由于您使用的是 Ubuntu,请运行以下命令:
sudo apt install libffi-dev libncurses5-dev zlib1g zlib1g-dev
然后再试一次。如果构建再次失败,请再次查看日志以查看您还缺少什么并安装它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。