PyQt5-5.8.2 在 Windows 10 上不起作用

PyQt5-5.8.2 doesn't function on Windows 10

我需要安装 qscintilla。我为此使用 pip:

> pip install qscintilla

PyQt5自动升级到最新版本'5.8.2',sip自动升级到'4.19.2'。我想这与 qscintilla 的需求有关。也许最新版本的qscintilla需要最新的PyQt版本才能正常运行。
不幸的是,PyQt5-5.8.2 结合 sip-4.19.2 不能在 Windows 10 上运行。我收到以下错误:

> python
>>> import PyQt5.QtWidgets
ImportError: DLL load failed: The specified module could not be found.

我检查了 Windows10 中的 PATH 变量,发现以下目录:C:\Anaconda3\Library\bin。我检查了那个文件夹,dll 都存在:Qt5Widgets.dll,'Qt5Gui.dll`,...所以我简直不敢相信 Python 找不到它们。

我现在将回顾一下到目前为止我尝试过的事情。

1.全新安装 Anaconda => 升级 PyQt5。

我已经从我的 PC 中完全删除 Python,并从头开始安装 Anaconda:Python 3.6 for Windows 64 位。
Anaconda 附带旧版本的 PyQt5。我这样检查版本:

> python
>>> from PyQt5.QtCore import QT_VERSION_STR
>>> from PyQt5.Qt import PYQT_VERSION_STR
>>> from sip import SIP_VERSION_STR
>>>
>>> QT_VERSION_STR
>>> '5.6.2'
>>> PYQT_VERSION_STR
>>> '5.6'
>>> SIP_VERSION_STR
>>> '4.18'

我只是升级了我的 PyQt 版本,因为我知道 qscintilla 安装无论如何都会这样做。如果问题出现在升级 PyQt 之后(并且在安装 qscintilla 之前),我可以排除可能由 qscintilla 安装引起的问题。所以我们开始吧:

> pip install pyqt5 --upgrade
Collecting pyqt5
...
Successfully installed pyqt5-5.8.2 sip-4.19.2

不出所料,升级版pyqt报错:

> python
>>> import PyQt5.QtWidgets
ImportError: DLL load failed: The specified module could not be found.


2。安装 PyQt5-5.7.1 而不是 PyQt5-5.8.2.

我在这个页面上找到了 PyQt5-5.7.1 的 wheel 文件:https://pypi.python.org/pypi/PyQt5/5.7.1
我希望 qscintilla 也能在这方面发挥作用。毕竟,这是一个相当新的版本。但首先,我想看看我是否正确安装了它,以及上面的错误是否消失了。

> pip uninstall PyQt5
> pip uninstall sip
>
> pip install C:\..\Downloads\PyQt5-5.7.1-5.7.1-cp34.cp35.cp36-none-win_amd64.whl --no-cache-dir
...
Successfully installed pyqt5-5.7.1 sip-4.19.2

不幸的是,错误仍然存​​在。


3。来自 Whosebug 的回答。

我在 Whosebug 上查看了几个 post,但其中 none 帮助了我。

谁能帮帮我?也许您已经成功地将最新的 PyQt5-5.8.2 版本从源代码构建到 wheel 文件中?如果你分享那个文件,我会很高兴。

我找到了解决方法:不要使用 Anaconda。我从我的 PC 上删除了 Anaconda,然后像这样重新安装:

1.安装 Python 64 位

从 URL 下载 Windows 的 64 位安装程序:https://www.python.org/downloads/release/python-361/

确保在询问安装选项时包含 pip

2。安装 PyQt5

通过在 Windows 命令终端中键入以下内容来安装 PyQt5:

> pip install PyQt5 --no-cache-dir
...
Successfully installed PyQt5-5.8.2 sip-4.19.2

--no-cache-dir 选项确保 pip 不会使用存储在您计算机某处的旧版本,而是下载最新版本。

3。安装 QScintilla

像这样安装 QScintilla:

> pip install qscintilla --no-cache-dir
Successfully installed qscintilla-2.10

我的根本问题是不同版本的 PyQt wheel (5.9) 和 pyqt windows 发行版(5.6 - 最后一个可用的预编译版本)。

我找到了匹配的 5.6 车轮,但它只支持 Python 3.5。 所以,我将 Python 降级到 3.5 并安装了 PyQt5-5.6-cp35-none-win_amd64.whl

pip install pyqt5==5.6 

同样有效。

它确实适用于 windows10。您的应用程序无法访问指定的 DLL。需要重新启动才能使其正常工作。我浏览了 SO 论坛中的所有答案,结果发现重启计算机可以解决所有问题。所以重新启动你的电脑。