【发布时间】:2019-12-13 18:37:49
【问题描述】:
我想在我的 Windows 10 Python 3.8 版上安装 PySide2,尽管尚未发布轮子。
当然,我首先尝试了pip install --python-version 3.7 命令,看看是否简单地获取所有内容,但对于以前的 Python 版本,就可以了。没用。
所以我在我的机器上安装了QT 以及手动构建它所需的所有依赖项和工具。我已经取得了相当大的进步,成功地构建了shiboken2,但未能构建PySide2 本身。
我不断遇到的错误是在尝试导入 shiboken2 时缺少 DLL-s。不幸的是,输出相当无用,因为它实际上并没有告诉我缺少哪些,而且我自己也无法弄清楚。
手动构建的错误如下(C:\PySide2\pyside-setup\pyside3_build\py3.8-qt5.12.6-32bit-release\pyside2目录下的nmake命令):
Scanning dependencies of target QtCore_pyi
Traceback (most recent call last):
File "C:/PySide2/pyside-setup/sources/pyside2/PySide2/QtCore/../support/generate_pyi.py", line 294, in <module>
generate_all_pyi(outpath, options=options)
File "C:/PySide2/pyside-setup/sources/pyside2/PySide2/QtCore/../support/generate_pyi.py", line 251, in generate_all_pyi
import PySide2
File "C:\PySide2\pyside-setup\pyside3_build\py3.8-qt5.12.6-32bit-release\pyside2\PySide2\__init__.py", line 51, in <module>
_setupQtDirectories()
File "C:\PySide2\pyside-setup\pyside3_build\py3.8-qt5.12.6-32bit-release\pyside2\PySide2\__init__.py", line 21, in _setupQtDirectories
import shiboken2
ImportError: DLL load failed while importing shiboken2: The specified module could not be found.
我通常会耐心等待轮子发布,但我找不到任何有关 Windows 进度的信息,而且我知道该库可用于其他平台上的 Python3.8。
您是否推荐任何步骤来找出我的构建有什么问题(我通常会使用pip install 代替PySide2,所以这对我来说是全新的),或者知道如何直接解决问题?我知道shiboken2.cp38-win32.pyd 在那里,我也将它包含在我的PATH 环境变量中以防万一,shiboken2.cp38-win32.dll 也是如此 - 但这些似乎不是丢失的文件。
注意:这应该是超级用户问题 (?)
【问题讨论】:
-
Python3.8甚至不支持PySide2,5.14版本才支持,所以建议你使用小Python版本
-
@eyllanesc 这是个好消息,谢谢!你能告诉我我通常应该在哪里寻找这样的信息,包括什么时候发布?我知道有多个跟踪器和一个博客。不幸的是,我必须坚持使用 3.8,但我很乐意等待更长时间。
-
见bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-1154。今天 Qt 5.14 发布了,所以我推测在接下来的几周内已经有 PySide2 5.14 版本。我建议这几周使用 python3.7,当新版本发布时,您只需携带一些最小功能(python3.8 中引入的更改很小)
-
例如,如果你可以用python3.8手动编译pyside2,那么当你想继承一个QObject(大多数Qt类都是QObjects)时,你仍然会有一个严重的bug,见stackoverflow.com/a/58904586/6622587
标签: python qt pyside2 python-3.8