python3 PyQt / PySide Linux 安装
Posted
技术标签:
【中文标题】python3 PyQt / PySide Linux 安装【英文标题】:python3 PyQt / PySide Linux installation 【发布时间】:2012-07-17 09:53:49 【问题描述】:我在 Linux Mint 上从源代码重新安装了 python3.2.2 解释器,以在 curses 中添加 unicode 支持,并发现 PyQt4 库没有导入。我尝试重新安装它,但遇到了与此处相同的问题:PyQt4 for Python 3.2.2 failing to install on Linux Mint 12。所以我遵循了 BlaXpirit 的答案并安装了 PySide,但它也没有导入。然后我在 /usr/lib/python3/dist-packages 中找到了它们,它们都没有添加到 PYTHONPATH 变量中。我已经添加了该目录并收到了下一个:
In [1]: import PySide
没关系,但是:
In [2]: import PySide.QtCore
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-3-1c10ffe6e7d7> in <module>()
----> 1 import PySide.QtCore
ImportError: No module named QtCore
和 PyQt4:
In [3]: import PyQt4
In [4]: import PyQt4.QtCore
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-5-e7e95ffb1113> in <module>()
----> 1 import PyQt4.QtCore
ImportError: /usr/lib/python3/dist-packages/PyQt4/QtCore.so: undefined symbol: PyUnicodeUCS4_AsLatin1String
在PySide目录内容是:
-rw-r--r-- 1 root root 181 2012-04-23 23:58 __init__.py
-rw-r--r-- 1 root root 783048 2012-04-24 02:16 phonon.cpython-32mu.so
drwxr-xr-x 2 root root 4096 2012-07-17 09:34 __pycache__
-rw-r--r-- 1 root root 2606568 2012-04-24 02:16 QtCore.cpython-32mu.so
-rw-r--r-- 1 root root 379188 2012-04-24 02:16 QtDeclarative.cpython-32mu.so
-rw-r--r-- 1 root root 11298296 2012-04-24 02:16 QtGui.cpython-32mu.so
-rw-r--r-- 1 root root 377804 2012-04-24 02:16 QtHelp.cpython-32mu.so
-rw-r--r-- 1 root root 921720 2012-04-24 02:16 QtNetwork.cpython-32mu.so
-rw-r--r-- 1 root root 370024 2012-04-24 02:16 QtOpenGL.cpython-32mu.so
-rw-r--r-- 1 root root 266296 2012-04-24 02:16 QtScript.cpython-32mu.so
-rw-r--r-- 1 root root 47608 2012-04-24 02:16 QtScriptTools.cpython-32mu.so
-rw-r--r-- 1 root root 481964 2012-04-24 02:16 QtSql.cpython-32mu.so
-rw-r--r-- 1 root root 152524 2012-04-24 02:16 QtSvg.cpython-32mu.so
-rw-r--r-- 1 root root 93592 2012-04-24 02:16 QtTest.cpython-32mu.so
-rw-r--r-- 1 root root 770644 2012-04-24 02:16 QtUiTools.cpython-32mu.so
-rw-r--r-- 1 root root 570536 2012-04-24 02:16 QtWebKit.cpython-32mu.so
-rw-r--r-- 1 root root 443944 2012-04-24 02:16 QtXml.cpython-32mu.so
-rw-r--r-- 1 root root 236552 2012-04-24 02:16 QtXmlPatterns.cpython-32mu.so
在 PyQt4 中:
-rw-r--r-- 1 root root 1111 2012-07-02 13:39 __init__.py
-rw-r--r-- 1 root root 13369 2012-07-02 13:39 pyqtconfig.py
-rwxr-xr-x 1 root root 2267672 2012-07-02 13:39 QtCore.so
-rwxr-xr-x 1 root root 226468 2012-07-02 13:39 QtDeclarative.so
-rwxr-xr-x 1 root root 302208 2012-07-02 13:39 QtDesigner.so
-rwxr-xr-x 1 root root 7362040 2012-07-02 13:39 QtGui.so
-rwxr-xr-x 1 root root 639832 2012-07-02 13:39 QtNetwork.so
-rwxr-xr-x 1 root root 248712 2012-07-02 13:39 QtOpenGL.so
-rwxr-xr-x 1 root root 187824 2012-07-02 13:39 QtScript.so
-rwxr-xr-x 1 root root 19964 2012-07-02 13:39 QtScriptTools.so
-rwxr-xr-x 1 root root 5508 2012-07-02 13:39 Qt.so
-rwxr-xr-x 1 root root 300872 2012-07-02 13:39 QtSql.so
-rwxr-xr-x 1 root root 85296 2012-07-02 13:39 QtSvg.so
-rwxr-xr-x 1 root root 28932 2012-07-02 13:39 QtTest.so
-rwxr-xr-x 1 root root 404432 2012-07-02 13:39 QtWebKit.so
-rwxr-xr-x 1 root root 158112 2012-07-02 13:39 QtXmlPatterns.so
-rwxr-xr-x 1 root root 301924 2012-07-02 13:39 QtXml.so
drwxr-xr-x 7 root root 4096 2012-07-02 13:39 uic
我已经多次从存储库和 python.org、源代码和二进制文件中重新安装了 python3,现在我在 /usr/bin 中有 1 个可执行的 python3.2mu和 /usr/local/bin 中的 3(python3、python3.2、python3.2m)。 请帮帮我!
【问题讨论】:
【参考方案1】:通过更改 pyatomic.h 中的 65 行解决了 PyQt4 的问题:
来自
_Py_ANNOTATE_HAPPENS_BEFORE(address);
到
_Py_ANNOTATE_HAPPENS_BEFORE(address) (void)address;
【讨论】:
以上是关于python3 PyQt / PySide Linux 安装的主要内容,如果未能解决你的问题,请参考以下文章
PyQt5 & PySide2 / 无法在“”中加载 Qt 平台插件“windows”,即使找到了