the*_*isp 11 python pip python-3.x pyqt5
我尝试安装的程序需要安装 PyQt5 5.15.0 ,这给了我这个错误。奇怪的是,安装适用于最新版本的 PyQt5 (5.15.2),但该程序特别需要 5.15.0。
命令输出:
Collecting PyQt5==5.15.0
Using cached PyQt5-5.15.0.tar.gz (3.3 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... error
ERROR: Command errored out with exit status 1:
command: 'c:\users\mshal\appdata\local\programs\python\python39\python.exe' 'C:\Users\mshal\AppData\Roaming\Python\Python39\site-packages\pip\_vendor\pep517\_in_process.py' prepare_metadata_for_build_wheel 'C:\Users\mshal\AppData\Local\Temp\tmp41s11ev6'
cwd: C:\Users\mshal\AppData\Local\Temp\pip-install-sfw90hvc\pyqt5_e2cc46859b554da7b84798abae5378ba
Complete output (31 lines):
Traceback (most recent call last):
File "C:\Users\mshal\AppData\Roaming\Python\Python39\site-packages\pip\_vendor\pep517\_in_process.py", line 126, in prepare_metadata_for_build_wheel
hook = backend.prepare_metadata_for_build_wheel
AttributeError: module 'sipbuild.api' has no attribute 'prepare_metadata_for_build_wheel'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\mshal\AppData\Roaming\Python\Python39\site-packages\pip\_vendor\pep517\_in_process.py", line 280, in <module>
main()
File "C:\Users\mshal\AppData\Roaming\Python\Python39\site-packages\pip\_vendor\pep517\_in_process.py", line 263, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "C:\Users\mshal\AppData\Roaming\Python\Python39\site-packages\pip\_vendor\pep517\_in_process.py", line 130, in prepare_metadata_for_build_wheel
return _get_wheel_metadata_from_wheel(backend, metadata_directory,
File "C:\Users\mshal\AppData\Roaming\Python\Python39\site-packages\pip\_vendor\pep517\_in_process.py", line 159, in _get_wheel_metadata_from_wheel
whl_basename = backend.build_wheel(metadata_directory, config_settings)
File "C:\Users\mshal\AppData\Local\Temp\pip-build-env-nnx_yu09\overlay\Lib\site-packages\sipbuild\api.py", line 51, in build_wheel
project = AbstractProject.bootstrap('pep517')
File "C:\Users\mshal\AppData\Local\Temp\pip-build-env-nnx_yu09\overlay\Lib\site-packages\sipbuild\abstract_project.py", line 83, in bootstrap
project.setup(pyproject, tool, tool_description)
File "C:\Users\mshal\AppData\Local\Temp\pip-build-env-nnx_yu09\overlay\Lib\site-packages\sipbuild\project.py", line 479, in setup
self.apply_user_defaults(tool)
File "project.py", line 62, in apply_user_defaults
super().apply_user_defaults(tool)
File "C:\Users\mshal\AppData\Local\Temp\pip-build-env-nnx_yu09\overlay\Lib\site-packages\pyqtbuild\project.py", line 79, in apply_user_defaults
super().apply_user_defaults(tool)
File "C:\Users\mshal\AppData\Local\Temp\pip-build-env-nnx_yu09\overlay\Lib\site-packages\sipbuild\project.py", line 225, in apply_user_defaults
self.builder.apply_user_defaults(tool)
File "C:\Users\mshal\AppData\Local\Temp\pip-build-env-nnx_yu09\overlay\Lib\site-packages\pyqtbuild\builder.py", line 66, in apply_user_defaults
raise PyProjectOptionException('qmake',
sipbuild.pyproject.PyProjectOptionException
----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\users\mshal\appdata\local\programs\python\python39\python.exe' 'C:\Users\mshal\AppData\Roaming\Python\Python39\site-packages\pip\_vendor\pep517\_in_process.py' prepare_metadata_for_build_wheel 'C:\Users\mshal\AppData\Local\Temp\tmp41s11ev6' Check the logs for full command output.
Run Code Online (Sandbox Code Playgroud)
我正在使用最新版本的 pip。关于这个问题的根本原因的任何想法?
小智 21
对于 Mac/Homebrew 用户。
@the-x 的答案是朝着正确的方向发展。在通过 Homebrew 安装了 QT5 的 Mac 上,qmake只需将二进制文件添加到路径中即可。这可以通过以下方式实现
export PATH="/opt/homebrew/opt/qt5/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
(当然取决于自制文件安装的位置)
小智 12
使用 python3.6 在 arm 上运行(nvidia Xavier 上的 ubuntu18):
sudo apt install qt5-default
Run Code Online (Sandbox Code Playgroud)
检查 PyQt5 在 pypi 版本 5.15.0 中提供的二进制文件,我发现它没有提供 Windows 中 python3.9 的二进制文件,因此 pip 尝试使用源代码进行编译,这很复杂,并且可能会产生几个依赖问题(例如例如,您必须安装 Qt 5.15 等)。所以我的建议是安装更新版本的 PyQt5,例如 5.15.2,因为如果它在 Windows 上提供 python3.9 的二进制文件,那么除了作为 Qt LTS 版本的包装器之外,它还将解决一些错误。
python -m pip install PyQt5==5.15.2
Run Code Online (Sandbox Code Playgroud)
另一个解决方案是使用 python3.8 而不是 python3.9,这样您就可以毫无问题地从 pypi 安装 pyqt5 5.15.0。
对于 MacOS 用户。
我在 Apple M1 芯片上使用 Python 3.9.8。对我有用的是@Apaul 在原始问题部分的评论。在 pyqt5 之前安装 pyqt5-sip。
我还有一台 Intel Mac,在那台机器上,我不需要这样做。
帮助我的是pip从 20.2.3升级到最新版本(在我的例子中是 21.1.1)
结合这个问题的几个答案:在带有 macOS Ventura 13.0.1、Homebrew 3.6.17 和 python 3.11.0 的 Apple M1 Pro Macbook 上,以下命令为我修复了它(无 sudo):
brew install qt5
export PATH="/opt/homebrew/opt/qt5/bin:$PATH"
python3 -m ensurepip --default-pip
pip3 install pyqt5-sip
pip3 install pyqt5 --config-settings --confirm-license= --verbose
Run Code Online (Sandbox Code Playgroud)
最后一步调用 qmake 在 M1 上编译所有 Qt,需要很多分钟才能完成,请耐心等待它完成。
小智 5
升级 pip 使您能够安装 PyQt5。就我个人而言,我在安装 PyQt6 时遇到了同样的问题,我升级了我的 pip,一切都安装得很好。我认为 python 和 pip 版本在安装 PyQt 中都发挥着重要作用,因此请确保您拥有更高版本。
这是我在Linux中使用的命令:
pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5724 次 |
| 最近记录: |