Emm*_*uel 8 import ubuntu pyqt5
反馈
我正在进行PyQt5安装(基于Qt5.2.1/Sip 4.15.5 API 11 ???)和标准Python3(3.3.2+)解释器兼容PyQt5(> = 3.3.2),因为它不是可以在Ubuntu 12.04上编译Python3.3-5,然后无法安装PyQt5(python 3.3.2或更高版本).
平台:
jeby6372@mercure:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 13.10
Release: 13.10
Codename: saucy
jeby6372@mercure:~$ uname -a
Linux mercure 3.11.0-13-generic #20-Ubuntu SMP Wed Oct 23 07:38:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
在安装过程中一切似乎都运行良好,PyQt5导入有效,但是当我尝试通过python3解释器导入模块时,会出现此错误:
>>> import PyQt5
>>> from PyQt5.QtCore import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
RuntimeError: the sip module implements API v10.0 to v10.1 but the PyQt5.QtCore module requires API v11.0
Run Code Online (Sandbox Code Playgroud)
安装步骤:
来自RiverBank过程中提到的源代码的PyQt5,针对compile.py选项中的qmake程序:
python3 configure.py --qmake /opt/Qt/5.2.1/gcc_64/bin/qmake --sip/usr/bin/sip
套餐地点:
啜饮版
jeby6372@mercure:~$ which sip
/usr/bin/sip
jeby6372@mercure:~$ sip -V
4.15.5
jeby6372@mercure:~$
Run Code Online (Sandbox Code Playgroud)
我的python环境变量是:
jeby6372@mercure:~$ echo $PYTHONPATH
/usr/lib/python3.3/site-packages
Run Code Online (Sandbox Code Playgroud)
$ PATH变量:
jeby6372@mercure:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/Qt/5.2.1/gcc_64/bin
Run Code Online (Sandbox Code Playgroud)
$ LD_LIBRARY_PATH是空的(不要认为它很重要,但我更愿意提及它......)
site-pacakges目录的内容是:
jeby6372@mercure:~$ ls /usr/lib/python3.3/site-packages
PyQt5
__init__.py QtCore.so QtDBus.so QtNetwork.so Qt.so QtXmlPatterns.so uic
Run Code Online (Sandbox Code Playgroud)
但在以前的安装中它是不同的.不知道为什么!:
jeby6372@mercure:~$ ls /usr/lib/python3.3/site-packages/PyQt5
__init__.py QtDesigner.so QtNetwork.so QtQuick.so QtSvg.so QtXmlPatterns.so
_QOpenGLFunctions_2_0.so QtGui.so QtOpenGL.so QtSensors.so QtTest.so uic
QtBluetooth.so QtHelp.so QtPositioning.so QtSerialPort.so QtWebKit.so
QtCore.so QtMultimedia.so QtPrintSupport.so Qt.so QtWidgets.so
QtDBus.so QtMultimediaWidgets.so QtQml.so QtSql.so QtX11Extras.so
Run Code Online (Sandbox Code Playgroud)
我无法弄清问题在哪里,我对这个产品的工作越多,我理解的越少.我正在Ubuntu 13.10上进行此安装,因为PyQt5因为Python 3.3-5编译错误而无法在Ubuntu 12.04上运行..仍然没有答案....
请帮忙.
提前致谢.
Cha*_*_99 13
你的问题来自于分发提供的sip和你可能从源代码编译的sip的冲突.
由用户mata吸收,import sip; print(sip, sip.SIP_VERSION_STR)从python3解释器控制台中调用,并将输出与sip -V从普通(bash)控制台调用得到的输出进行比较.版本可能不同.
我通过识别系统中所有已安装的sip相关软件包克服了这个错误.(对于类似Debian的系统:) dpkg -l | grep sip,删除它们及其所有配置文件(再次,对于Debian:apt-get purge python3-sip python3-sip-dev...)并重新安装自定义版本(make install再次运行).
顺便说一下,我对所有PyQt5包都做了同样的事情.根据您不完整的站点包列表,您可能还安装了一些较旧的PyQt5发行版包.目前的模块有更多的模块.(例如QtSql)
(所有提到的命令都应该以root身份执行.)
| 归档时间: |
|
| 查看次数: |
7525 次 |
| 最近记录: |