PyCharm配置PyQt5安装报错详情笔记

报错信息:

html 复制代码
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
Collecting PyQt5-tools
  Using cached pyqt5_tools-5.15.9.3.3-py3-none-any.whl (29 kB)
Collecting click (from PyQt5-tools)
  Using cached click-8.3.3-py3-none-any.whl (110 kB)
Collecting pyqt5==5.15.9 (from PyQt5-tools)
  Using cached PyQt5-5.15.9-cp37-abi3-win_amd64.whl (6.8 MB)
INFO: pip is looking at multiple versions of pyqt5-tools to determine which version is compatible with other requirements. This could take a while.
Collecting PyQt5-tools
  Using cached pyqt5_tools-5.15.4.3.2-py3-none-any.whl (29 kB)
Collecting pyqt5==5.15.4 (from PyQt5-tools)
  Using cached PyQt5-5.15.4.tar.gz (3.3 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [32 lines of output]
      pyproject.toml: line 7: using '[tool.sip.metadata]' to specify the project metadata is deprecated and will be removed in SIP v7.0.0, use '[project]' instead
      Traceback (most recent call last):
        File "E:\Anconda3\envs\training\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 389, in <module>
          main()
          ~~~~^^
        File "E:\Anconda3\envs\training\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 373, in main
          json_out["return_val"] = hook(**hook_input["kwargs"])
                                   ~~~~^^^^^^^^^^^^^^^^^^^^^^^^
        File "E:\Anconda3\envs\training\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 178, in prepare_metadata_for_build_wheel
          whl_basename = backend.build_wheel(metadata_directory, config_settings)
        File "C:\Users\zjl15\AppData\Local\Temp\pip-build-env-66zoo0xx\overlay\Lib\site-packages\sipbuild\api.py", line 28, in build_wheel
          project = AbstractProject.bootstrap('wheel',
                  arguments=_convert_config_settings(config_settings))
        File "C:\Users\zjl15\AppData\Local\Temp\pip-build-env-66zoo0xx\overlay\Lib\site-packages\sipbuild\abstract_project.py", line 74, in bootstrap
          project.setup(pyproject, tool, tool_description)
          ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\zjl15\AppData\Local\Temp\pip-build-env-66zoo0xx\overlay\Lib\site-packages\sipbuild\project.py", line 661, in setup
          self.apply_user_defaults(tool)
          ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
        File "C:\Users\zjl15\AppData\Local\Temp\pip-install-72xcqmnl\pyqt5_b067f208e893443fa5ead66de6f0ac2c\project.py", line 63, in apply_user_defaults
          super().apply_user_defaults(tool)
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
        File "C:\Users\zjl15\AppData\Local\Temp\pip-build-env-66zoo0xx\overlay\Lib\site-packages\pyqtbuild\project.py", line 51, in apply_user_defaults
          super().apply_user_defaults(tool)
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
        File "C:\Users\zjl15\AppData\Local\Temp\pip-build-env-66zoo0xx\overlay\Lib\site-packages\sipbuild\project.py", line 248, in apply_user_defaults
          self.builder.apply_user_defaults(tool)
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
        File "C:\Users\zjl15\AppData\Local\Temp\pip-build-env-66zoo0xx\overlay\Lib\site-packages\pyqtbuild\builder.py", line 49, in apply_user_defaults
          raise PyProjectOptionException('qmake',
                  "specify a working qmake or add it to PATH")
      sipbuild.pyproject.PyProjectOptionException
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> pyqt5

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

一、安装环境及操作背景

  1. 镜像源:使用阿里云PyPI镜像(https://mirrors.aliyun.com/pypi/simple/)

  2. 安装目标:PyQt5-tools

  3. 运行环境:Anaconda虚拟环境(路径:E:\Anconda3\envs\training)

二、安装过程及报错概况

  1. 初始尝试安装PyQt5-tools==5.15.9.3.3,依赖PyQt5==5.15.9,pip自动检测兼容性后,降级尝试安装PyQt5-tools==5.15.4.3.2,对应依赖PyQt5==5.15.4。

  2. 报错核心:安装PyQt5==5.15.4时,准备元数据(pyproject.toml)失败,属于包本身兼容性问题,非pip工具问题。

三、关键报错信息(核心重点)

1. 弃用提示(警告)

pyproject.toml: line 7: using 'tool.sip.metadata' to specify the project metadata is deprecated and will be removed in SIP v7.0.0, use 'project' instead

说明:SIP工具版本不兼容,PyQt5==5.15.4使用的配置方式(tool.sip.metadata)已被弃用,将在SIP v7.0.0中移除,需改用project配置。

2. 核心错误(异常)

报错类型:sipbuild.pyproject.PyProjectOptionException

报错信息:specify a working qmake or add it to PATH

说明:缺少qmake工具,或qmake未添加到系统环境变量中,导致PyQt5编译(准备元数据)失败。

3. 报错总结提示

× Encountered error while generating package metadata. ╰─> pyqt5

note: This is an issue with the package mentioned above, not pip.(问题出在PyQt5包本身,非pip工具)

四、完整报错日志

Looking in indexes: https://mirrors.aliyun.com/pypi/simple/

Collecting PyQt5-tools

Using cached pyqt5_tools-5.15.9.3.3-py3-none-any.whl (29 kB)

Collecting click (from PyQt5-tools)

Using cached click-8.3.3-py3-none-any.whl (110 kB)

Collecting pyqt5==5.15.9 (from PyQt5-tools)

Using cached PyQt5-5.15.9-cp37-abi3-win_amd64.whl (6.8 MB)

INFO: pip is looking at multiple versions of pyqt5-tools to determine which version is compatible with other requirements. This could take a while.

Collecting PyQt5-tools

Using cached pyqt5_tools-5.15.4.3.2-py3-none-any.whl (29 kB)

Collecting pyqt5==5.15.4 (from PyQt5-tools)

Using cached PyQt5-5.15.4.tar.gz (3.3 MB)

Installing build dependencies ... done

Getting requirements to build wheel ... done

Preparing metadata (pyproject.toml) ... error

error: subprocess-exited-with-error

× Preparing metadata (pyproject.toml) did not run successfully.

│ exit code: 1

╰─> 32 lines of output

pyproject.toml: line 7: using 'tool.sip.metadata' to specify the project metadata is deprecated and will be removed in SIP v7.0.0, use 'project' instead

Traceback (most recent call last):

File "E:\Anconda3\envs\training\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 389, in <module>

main()

~~~~^^

File "E:\Anconda3\envs\training\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 373, in main

json_out"return_val" = hook(**hook_input"kwargs")

~~~~^^^^^^^^^^^^^^^^^^^^^^^^

File "E:\Anconda3\envs\training\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 178, in prepare_metadata_for_build_wheel

whl_basename = backend.build_wheel(metadata_directory, config_settings)

File "C:\Users\zjl15\AppData\Local\Temp\pip-build-env-66zoo0xx\overlay\Lib\site-packages\sipbuild\api.py", line 28, in build_wheel

project = AbstractProject.bootstrap('wheel', arguments=_convert_config_settings(config_settings))

File "C:\Users\zjl15\AppData\Local\Temp\pip-build-env-66zoo0xx\overlay\Lib\site-packages\sipbuild\abstract_project.py", line 74, in bootstrap

project.setup(pyproject, tool, tool_description)

~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\zjl15\AppData\Local\Temp\pip-build-env-66zoo0xx\overlay\Lib\site-packages\sipbuild\project.py", line 661, in setup

self.apply_user_defaults(tool)

~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^

File "C:\Users\zjl15\AppData\Local\Temp\pip-install-72xcqmnl\pyqt5_b067f208e893443fa5ead66de6f0ac2c\project.py", line 63, in apply_user_defaults

super().apply_user_defaults(tool)

~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^

File "C:\Users\zjl15\AppData\Local\Temp\pip-build-env-66zoo0xx\overlay\Lib\site-packages\pyqtbuild\project.py", line 51, in apply_user_defaults

super().apply_user_defaults(tool)

~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^

File "C:\Users\zjl15\AppData\Local\Temp\pip-build-env-66zoo0xx\overlay\Lib\site-packages\sipbuild\project.py", line 248, in apply_user_defaults

self.builder.apply_user_defaults(tool)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^

File "C:\Users\zjl15\AppData\Local\Temp\pip-build-env-66zoo0xx\overlay\Lib\site-packages\pyqtbuild\builder.py", line 49, in apply_user_defaults

raise PyProjectOptionException('qmake', "specify a working qmake or add it to PATH")

sipbuild.pyproject.PyProjectOptionException

end of output

note: This error originates from a subprocess, and is likely not a problem with pip.

error: metadata-generation-failed

× Encountered error while generating package metadata.

╰─> pyqt5

note: This is an issue with the package mentioned above, not pip.

hint: See above for details.

解决方案:

Anaconda 虚拟环境 里安装 PyQt5-tools 失败了,核心原因是:直接用 pip 装老版本 PyQt5 需要编译环境(qmake),你的电脑没有配置,所以报错

最简单、100% 成功的解决方法

在 Anaconda 里用 conda 安装 PyQt5,不要用 pip!

步骤 1:激活你的虚拟环境

先打开 Anaconda Prompt,运行:

复制代码
conda activate training

步骤 2:用 conda 安装 PyQt5(自动带工具)

复制代码
conda install pyqt

回车确认(输入 y),这一步会自动安装完整可用的 PyQt5 + 设计器。

步骤 3:安装 PyQt5-tools(可选,只装设计器)

复制代码
pip install pyqt5-tools

现在就不会报错了!


如果你只想快速打开 Qt 设计器

安装完成后,直接在终端运行这个命令就能打开可视化界面设计工具:

复制代码
designer

为什么之前报错?

  1. pip install PyQt5-tools 会强制安装需要编译的老版本 PyQt5
  2. 你的 Windows 没有配置 qmake 编译环境,所以安装失败
  3. conda 安装 PyQt5 是预编译好的,完全不用配置环境

总结

  1. 别用 pip 装 PyQt5 ,在 Anaconda 里用 conda install pyqt
  2. 激活环境 → conda 安装 → 直接运行 designer 即可
  3. 全程不用配置任何编译环境,零报错
相关推荐
longxiangam5 小时前
esp-idf 中 mipi dsi 使用的笔记
笔记
EntyIU5 小时前
JVM内存与GC笔记
java·jvm·笔记
星恒随风7 小时前
C语言数据结构排序算法详解(下):冒泡排序、快速排序、归并排序和计数排序
c语言·数据结构·笔记·学习·排序算法
米小葱7 小时前
【学习笔记】cmake
笔记·学习
机器视觉知识推荐、就业指导9 小时前
Qt6 + QCustomPlot 实时曲线 Demo ,适合串口与上位机项目
qt
小+不通文墨9 小时前
把树莓派外接的DHT11接收的温湿度发送到emqx上
经验分享·笔记·嵌入式硬件·学习·树莓派
会编程的土豆10 小时前
Go 方法接收者超清晰笔记(类型名 vs 变量名)
开发语言·笔记·golang
fanged11 小时前
C++的汇编实现(TODO)
笔记
YY&DS11 小时前
Qt 嵌入 CEF 在 Linux 下必须设置 `QT_XCB_GL_INTEGRATION=xcb_egl才能加载网页
linux·开发语言·qt