【问题标题】:Windows Anaconda Roll Back Qt version Qt5 to Qt4Windows Anaconda 回滚 Qt 版本 Qt5 到 Qt4
【发布时间】:2017-09-18 19:22:37
【问题描述】:

有人可以帮帮我吗? 我已经尝试了几乎所有在线建议,但似乎找不到有效的解决方案。

我有两台电脑。不久前,我安装了 Anaconda3 并且能够让 PyQt4 不费吹灰之力地工作。不幸的是,我不记得我做了什么。

我现在需要让我在第一台 PC 上编写的代码在第二台 PC 上运行。但由于某种原因,我无法将 Qt 或 PyQt 版本从 5 回滚到 4。看起来 Qt 包非常复杂,并且不再具有用于 python 3.6 的简单二进制安装程序。 第一台 PC 的详细信息如下所示: 1st PC with working Qt4 第二台PC详情如下:2nd PC details。 因此,如果我明白我需要以某种方式将 Qt 版本更改为 4.8.7,将 PyQt 更改为 4.11.4?我根本不需要 Qt5,所以不要介意它是否被删除或卸载。

表明它可以工作的相关代码只是 PyQt4 的导入,就目前而言,它会留下以下错误消息: "ModuleNotFoundError: 没有名为 'PyQt4' 的模块"

我已经尝试过这里的建议: How to install PyQt4 in anaconda? 但得到“unsatisfiableerror:发现以下规范存在冲突:-pyqt 4*-> python 2.6* -python 3.6*”

我也尝试安装 SIP,但由于无法使用 anaconda 终端提示符构建它,因此出现了问题。 Conda install sip 有效,但安装的是不支持 PyQt4.11.4 的旧版本。

我不介意完全卸载 anaconda 和所有 python 来解决这个问题。

不确定是否有区别,但第一台 PC 是 windows 10,第二台 PC 是 windows 8。 任何帮助将不胜感激,因为我几乎失去了冷静。

【问题讨论】:

    标签: python qt version-control rollback


    【解决方案1】:

    我猜你有一个 python 3.6 环境。官方 anaconda 频道中没有为 py36 构建的 pyqt 4 包,但 conda-forge 中有一个。所以你应该可以通过添加额外的频道来安装所需的版本

    conda install -c conda-forge pyqt=4
    

    【讨论】:

    • 嗨,我也试过了,得到“UnsatisfiableError:发现以下规范存在冲突:-anaconda-navigator -pyqt 4* -python 3.6*”
    • 我真的不记得我是如何获得适用于 PC1 的版本的。在 Ipython 控制台中,它甚至显示:“Python 3.6.2 |Anaconda custom (64-bit)| (default, Jul 20 2017, 12:30:02) [MSC v.1900 64 bit (AMD64)] 键入“copyright” 、“信用”或“许可”以了解更多信息。”
    • 您可以通过使用“conda list”或“conda list --export”检查和比较已安装的所有软件包的版本来获得一些线索。我不可能你已经做了一些事情,比如在安装中添加了 --force 标志。它会绕过版本要求。
    • conda list 并没有告诉我太多,尽管我不知道该寻找什么。但是这个 --force 标志让我很感兴趣。有没有办法强制安装Qt4?如果我可以重新安装所有内容并使其与 PC1 相同,那是最理想的。
    • 如果您有重新开始的选项,您可以导出包列表,然后使用该列表创建新环境 [code] conda list --export > env_spec.txt [/code] 然后使用该文件在其他电脑上创建环境 [code] conda create -n myenv --file env_spec.txt [/code]
    【解决方案2】:

    Christoph Gohlke 制造了 qt4 车轮:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt4

    【讨论】:

    • 嘿,是的,我之前尝试过,但遇到异常:PermissionError:[Errno 13] 权限被拒绝。知道为什么吗?
    • 我不确定我改变了什么,但我重试了上面的,现在我得到“要求已经满足:..\site-packages 中的 PyQt=4.11.4”。但是,当我尝试运行代码时,仍然会收到“ModuleNotFoundError:没有名为‘PyQt4’的模块”。我不知何故需要强制 Spyder(或 anaconda?)使用 PyQt4。不确定如何
    【解决方案3】:

    尝试使用 pip 安装,这可能有效

    python -m pip install --upgrade pyqt4
    

    【讨论】:

    • 我之前没有尝试过。我收到以下消息:“要求已经是最新的:c:\users\nick\anaconda3\lib\site-packages 中的 pyqt4”。不确定这意味着什么或是否有帮助?
    • 这意味着你有pyqt4,并尝试检查你是否有上面提到的Path环境变量。你可以检查 os.path
    • 对不起?上面提到的Path环境变量?你能建议我做什么吗?
    • 我假设 PyQt4 已安装,但我如何确保它现在已实施?
    • 假设您正在运行 Windows 机器,转到系统属性-> 高级系统设置-> 环境变量添加新路径,上面显示的路径应该可以工作。
    【解决方案4】:

    大家好,我找到了适合我的解决方案。 这只有在你不需要 PyQt5 时才会真正起作用。 我基本上完全删除了所有 python 和 anaconda 包,并重新安装了具有我需要的确切包的旧版本。如果您已经安装了大量其他软件包或插件(例如 pyserial),这并不理想。

    我基本上使用:“conda info anaconda”并搜索了所有同时具有 python 3(及更高版本)以及 Qt4 和 PyQt4 的版本。在我的例子中,anaconda 4.1.1 成功了(特别是 anaconda3 和 python 3.5)。然后,您可以下载 info(https://repo.continuum.io/pkgs/free/win-64/anaconda-4.1.1-np111py34_0.tar.bz2) 提供的 .tar,也可以从 (https://repo.continuum.io/archive/) 下载安装程序。

    代码现在可以工作了(有点错误,但我希望这是因为我现在使用 python 3.5 而不是 python 3.6)。所以我会尝试升级python版本,看看是否有帮助。

    简而言之,这样做似乎比尝试回滚 Qt 版本或我上面尝试的任何其他方法要容易得多。

    我希望这对未来的人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 2013-08-05
      • 1970-01-01
      相关资源
      最近更新 更多