【问题标题】:PyQt5-5.8.2 doesn't function on Windows 10PyQt5-5.8.2 在 Windows 10 上不起作用
【发布时间】:2017-08-30 07:02:14
【问题描述】:

我需要安装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.

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

我现在将介绍迄今为止我尝试过的事情。

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

我已从我的 PC 中完全删除 Python,并从头开始安装 Anaconda:适用于 64 位 Windows 的 Python 3.6。
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 的轮文件: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. StackOverflow 的答案。

我在 StackOverflow 上查看了几篇帖子,但没有一篇对我有帮助。

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

【问题讨论】:

    标签: pyqt anaconda pyqt5 qscintilla


    【解决方案1】:

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

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

    pip install pyqt5==5.6 
    

    效果同样好。

    【讨论】:

      【解决方案2】:

      我找到了解决方法:不要使用 Anaconda。我从我的电脑中删除了 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
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-10
          • 2017-04-26
          • 2017-11-18
          • 2017-01-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多