安装 PyQt5 时元数据生成失败

lin*_*shu 12 python-3.x pyqt5

我有一个与AttributeError: module 'sipbuild.api' has no attribute 'prepare_metadata_for_build_wheel' for PyQt5 5.15.0类似的问题。大多数建议的解决方案是安装最新版本的 pip。但我有最新的 pip 版本(22.0.2),但它仍然无法工作。我正在尝试将其安装在 MacOS 12.1、python 版本 3.8.9 中。

\n

命令输出:

\n
Collecting PyQt5\n  Using cached PyQt5-5.15.6.tar.gz (3.2 MB)\n  Installing build dependencies ... done\n  Getting requirements to build wheel ... done\n  Preparing metadata (pyproject.toml) ... error\n  error: subprocess-exited-with-error\n  \n  \xc3\x97 Preparing metadata (pyproject.toml) did not run successfully.\n  \xe2\x94\x82 exit code: 1\n  \xe2\x95\xb0\xe2\x94\x80> [29 lines of output]\n      Traceback (most recent call last):\n        File "/Users/ashuadhikari/Library/Python/3.8/lib/python/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 156, in prepare_metadata_for_build_wheel\n          hook = backend.prepare_metadata_for_build_wheel\n      AttributeError: module \'sipbuild.api\' has no attribute \'prepare_metadata_for_build_wheel\'\n      \n  During handling of the above exception, another exception occurred:\n  \n  Traceback (most recent call last):\n    File "/Users/ashuadhikari/Library/Python/3.8/lib/python/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in <module>\n      main()\n    File "/Users/ashuadhikari/Library/Python/3.8/lib/python/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main\n      json_out[\'return_val\'] = hook(**hook_input[\'kwargs\'])\n    File "/Users/ashuadhikari/Library/Python/3.8/lib/python/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 160, in prepare_metadata_for_build_wheel\n      whl_basename = backend.build_wheel(metadata_directory, config_settings)\n    File "/private/var/folders/2_/r0h48ntn7x9dz67r08nh7rv80000gn/T/pip-build-env-tp6yyadf/overlay/lib/python3.8/site-packages/sipbuild/api.py", line 51, in build_wheel\n      project = AbstractProject.bootstrap(\'pep517\')\n    File "/private/var/folders/2_/r0h48ntn7x9dz67r08nh7rv80000gn/T/pip-build-env-tp6yyadf/overlay/lib/python3.8/site-packages/sipbuild/abstract_project.py", line 83, in bootstrap\n      project.setup(pyproject, tool, tool_description)\n    File "/private/var/folders/2_/r0h48ntn7x9dz67r08nh7rv80000gn/T/pip-build-env-tp6yyadf/overlay/lib/python3.8/site-packages/sipbuild/project.py", line 587, in setup\n      self.apply_user_defaults(tool)\n    File "project.py", line 63, in apply_user_defaults\n      super().apply_user_defaults(tool)\n    File "/private/var/folders/2_/r0h48ntn7x9dz67r08nh7rv80000gn/T/pip-build-env-tp6yyadf/overlay/lib/python3.8/site-packages/pyqtbuild/project.py", line 70, in apply_user_defaults\n      super().apply_user_defaults(tool)\n    File "/private/var/folders/2_/r0h48ntn7x9dz67r08nh7rv80000gn/T/pip-build-env-tp6yyadf/overlay/lib/python3.8/site-packages/sipbuild/project.py", line 234, in apply_user_defaults\n      self.builder.apply_user_defaults(tool)\n    File "/private/var/folders/2_/r0h48ntn7x9dz67r08nh7rv80000gn/T/pip-build-env-tp6yyadf/overlay/lib/python3.8/site-packages/pyqtbuild/builder.py", line 67, in apply_user_defaults\n      raise PyProjectOptionException(\'qmake\',\n  sipbuild.pyproject.PyProjectOptionException\n  [end of output]\n\n\n\n note: This error originates from a subprocess, and is likely not a problem with pip.\nerror: metadata-generation-failed\n\n\xc3\x97 Encountered error while generating package metadata.\n\xe2\x95\xb0\xe2\x94\x80> See above for output.\n\nnote: This is an issue with the package mentioned above, not pip.\nhint: See above for details.\n
Run Code Online (Sandbox Code Playgroud)\n

注意:使用brew安装PyQt5是有效的,但是brew安装了最新的python版本作为依赖项,我想在我的venv中安装PyQt5。

\n

小智 5

我在 M1 Mac 上安装 PyQt5 时也遇到问题,但如果你想在没有 miniconda 的情况下使用 venv,我找到了另一种选择。当尝试在 venv 中安装 PyQt5 时,使用brew 安装 python 并不能修复 pip 错误。

该错误实际上似乎与使用 Python 通用安装程序有关,然后 PyQt5 5.15.6 似乎还有另一个错误。

首先:从python.org安装 Python 3.9.13 MacOS Intel-only 安装程序 在我这样做之后,我尝试使用 pip 在 venv 中安装最新版本的 PyQt (5.15.6),但 pip 标记了哈希不匹配:

ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
PyQt5-Qt5>=5.15.2 from https://files.pythonhosted.org/packages/62/09/99a222b0360616250fb2e6003a54e43a2a06b0774f0f8d5daafb86a2c375/PyQt5_Qt5-5.15.2-py3-none-macosx_10_13_intel.whl#sha256=76980cd3d7ae87e3c7a33bfebfaee84448fd650bad6840471d6cae199b56e154 (from PyQt5):
    Expected sha256 76980cd3d7ae87e3c7a33bfebfaee84448fd650bad6840471d6cae199b56e154
         Got        d97d141facbdb3af4f5593b5068fb1d57a2e01ccace3758b897636700f2a2640
Run Code Online (Sandbox Code Playgroud)

所以第二:使用 pip install PyQt5==5.15.5

这成功地让我能够像平常一样在 PyQt5 中使用 venv。


Amy*_*ose 3

所以人们可以在评论之外找到这个答案:

在 macOS 上使用Brew是可行的,从那里安装 Python 和 PyQT5,如果您希望它正常工作,请务必将您的 python 命令更改为 Brew 的目录。

我不知道为什么,但pip目前从 python.org 安装时在 macOS(可能是所有平台)上出现问题