为 Python 3.8、Windows 安装 PySide2
Posted
技术标签:
【中文标题】为 Python 3.8、Windows 安装 PySide2【英文标题】:Installing PySide2 for Python 3.8, Windows 【发布时间】: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,见***.com/a/58904586/6622587 【参考方案1】:在 Windows 平台上简单的pip install PySide2
是不够的,您应该进行安装后步骤。作为 PySide2 安装的一部分,您获得了 pywin32_postinstall.py
脚本(不确定 Win10,但在 Windows 7 上,路径为 C:\Users\<your_user>\AppData\Local\Programs\Python\Python38\Scripts\
)
您应该运行 pywin32_postinstall.py -install
来注册 DLL。
【讨论】:
谢谢,我不知道!不幸的是,我无法验证它是否适用于 Windows 10(64 位),因为我现在已经通过pip
安装了PySide2
- 但也许我将有机会在下一个 Python 版本中进行测试:)
@StarterKit 我这样做了,但仍然收到错误为“ImportError:DLL 加载失败:找不到指定的模块。” foo python 3.7 32bit 并通过 pip 安装
@rahul 我自己没有遇到过这样的错误。但是从谷歌我发现了 2 个可能的选项:1)PySide 和 Shiboken2 之间的包版本不匹配(你可以运行pip freeze
来检查版本;2)在不同位置重复的 DLL - 我不确定你需要检查哪个 DLL(不幸的是,我不能给你 DLL 名称)
@StarterKit,感谢您提供的信息。我安装了 64 位版本,现在可以正常工作了。所以我根据需求切换。
@rahul,很高兴听到您的问题已解决 :)以上是关于为 Python 3.8、Windows 安装 PySide2的主要内容,如果未能解决你的问题,请参考以下文章
无法安装 Kivy(Windows 10,python 3.8)[重复]
如何在 Windows 上安装 pyodbc 以与 Python 3.8 一起使用?
使用 python 3.8 在 windows 10 上安装 django 频道和扭曲的问题