1

我是新手,我的英语不是很好,但我来了:我的 PC 上有最新的 Arch Linux,昨天我尝试安装 SIP,一个用于包装 C++ 代码的 Python 代码生成器。我尝试在虚拟环境下安装 SIP 和 PyQt4。我从 AUR 获得 SIP,并以这种方式安装它:

http://lucacerone.net/2013/08/installing-pyqt4-and-sip-in-a-virtual-environment-ubuntu-1204/#.Uyx-dGd_phF/

我这样做是因为在官方 SIP 文档网站上,我不知道在哪里安装它以及在哪个目录中。文件对我来说不是很清楚。我现在知道,这是一个非常愚蠢的想法,因为当我尝试使用以下命令运行 pyhton 脚本时:

python file.py

因为我使用的是 Python 3.3.4,所以出现错误:

[vain@chinchi2 python_programme]$ python test.py
Traceback (most recent call last):
  File "test.py", line 25, in <module>
    import matplotlib.pyplot as plt
  File "/usr/lib/python3.3/site-packages/matplotlib/pyplot.py", line 98, in <module>
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
  File "/usr/lib/python3.3/site-packages/matplotlib/backends/__init__.py", line 28, in pylab_setup
    globals(),locals(),[backend_name],0)
  File "/usr/lib/python3.3/site-packages/matplotlib/backends/backend_qt4agg.py", line 13, in <module>
    from .backend_qt4 import QtCore, QtGui, FigureManagerQT, FigureCanvasQT,\
  File "/usr/lib/python3.3/site-packages/matplotlib/backends/backend_qt4.py", line 21, in <module>
    import matplotlib.backends.qt4_editor.figureoptions as figureoptions
  File "/usr/lib/python3.3/site-packages/matplotlib/backends/qt4_editor/figureoptions.py", line 13, in <module>
    import matplotlib.backends.qt4_editor.formlayout as formlayout
  File "/usr/lib/python3.3/site-packages/matplotlib/backends/qt4_editor/formlayout.py", line 51, in <module>
    from matplotlib.backends.qt4_compat import QtGui,QtCore
  File "/usr/lib/python3.3/site-packages/matplotlib/backends/qt4_compat.py", line 56, in <module>
    from PyQt4 import QtCore, QtGui
RuntimeError: the sip module implements API v11.0 but the PyQt4.QtCore module requires API v10.1

我究竟应该改变什么?我也试过:

sudo pacman -S pyqt5-common 5.2-1 [installed]

(在 python-pyqt5 和 python2-pyqt5 之间共享的公共 PyQt 文件)和:

pacman -Sy python-qscintilla-common

也许存在错误的库依赖关系,我该如何解决?


哦,我想安装 PyQt5 但我遇到了同样的问题,我做了同样的错误: python configure.py make sudo make install

full/virtualenv/path/build/SIP/sip-4.15.5/ 我又遇到了同样的错误:

from PyQt4 import QtCore, QtGui RuntimeError: the sip module implements API v11.0 but the PyQt4.QtCore module requires API v10.1 [vain@chinchi2 python_programme]$ python2 erstenprog.py Traceback (most recent call last): File "erstenprog.py", line 26, in <module> import matplotlib.pyplot as plt ImportError: No module named matplotlib.pyplot

我很沮丧,因为我用英语和德语写信给 arch linux 论坛,我没有得到答复,只能卸载它。

我该怎么办?我应该听从这里的建议:http: //lucacerone.net/2013/08/installing-pyqt4-and-sip-in-a-virtual-environment-ubuntu-1204/#.Uyx-dGd_phF/

我应该将 PyQt5 集成到:

full/virtualenv/path/build/PyQT5

因为它已经存在于

lib/python3.3/site-packages/PyQt5.

4

2 回答 2

2

如果你是 Arch Linux 的新手并且不知道你在做什么:不要手动安装这些包!

您可以依赖[core]/[community]包,如果某些包不受官方支持,则可以依赖 AUR。

第一:为什么要将这些安装在 virtualenv 中?你真的需要一个 virtualenv 来完成你的计划吗?另外,当你在 Arch Linux 上时,不要盲目地遵循 Ubuntu 教程,因为这些教程通常不会被改编……Ubuntu 用户需要亲自动手才能获得他们软件的最新功能。不是 Arch 用户(为获胜而滚动发布)。

二:以下错误

RuntimeError:sip 模块实现 API v11.0 但 PyQt4.QtCore 模块需要 API v10.1

表示PyQt4.QtCore上次 SIP 更新后未重新编译。只需重新编译包即可解决问题。请注意,如果您使用 Arch 官方软件包,则不会发生此类错误。

所以,如果你想在 Arch Linux 上使用 Python 3 安装 PyQt5,首先删除你在 virtualenv 中所做的一切以防止冲突,然后:

sudo pacman -S python-pyqt5 sip

之后,运行python file.py将使用官方正确安装的包调用 Python 3。

于 2014-04-07T09:36:21.080 回答
-1

您是要安装 PyQt4 还是 PyQt5?

正如你所指

sudo pacman -S pyqt5-common 5.2-1 [installed]

并尝试导入 PyQt4:

from PyQt4 import QtCore, QtGui

显然我们面临同样的错误:PyQt5 - SIP API 10 level error。需要 API 11

您能否提供您的 PyQt5 目录内容?只是为了和我的比较。

我认为这是一个错误,因为 PyQt5 需要安装 sip-4.5.15 并且最新版本可用。

... 或者 PyQt5 使用另一个 sip,但我找不到关于这种配置的任何信息。

此外,我在网上找不到有关 sip 包及其相应 API 级别的信息。

我在这里记录安装失败和分析进度: http ://www.hznteam.fr:5000/trac-bubble/ticket/102

正如你我正在等待更多信息。

于 2014-03-23T11:32:47.063 回答