如何在Ubuntu上构建PyQt5
How to build PyQt5 on Ubuntu
我正试图将我的工作从PySide
转移到PyQt5
。
我的项目使用Python3.4.1
,但Ubuntu默认的python3是Python3.4.0
,所以我必须自己编译PyQt5
。
Python3.4.1
的路径是/opt/python3.4.1/bin/python3.4
,它在中运行良好
我的系统是ubuntu14.04
首先,我从官方网站PyQt-gpl-5.3.1.tar.gz
和sip-4.16.2.tar.gz
下载源代码。Sip已成功安装,但生成pyqt
时出现错误。
我的命令是:
$/opt/python3.4.1/bin/python3.4 configure.py
$make
错误是
g++-m64-Wl,-O1-共享-o libpyqt5qmlplugin.so pluginloader.o moc_pluginloader.o-L/usr/X11R6/lib64-L/opt/python3.4.1/lib-lpython3.4m-lQt5Qml-L/usr/lib/x86_64-linux-gnu-lQt5Network-lQt5Gui-lQt5Core-lGL-lpthread
//usr/bin/ld:/opt/python3.4.1/lib/libpython3.4m.a(abstract.o):在创建共享对象时,不能使用针对"_Py_NotImplementedStruct"的重新定位R_X86_64_32S;使用-fPIC 重新编译
/opt/python3.4.1/lib/libpython3.4m.a:添加符号时出错:值错误
collect2:错误:ld返回1退出状态
make1:***[libpyqt5qmlplugin.so]错误1
当我使用默认的$python3 configure.py
时不会出现错误,并且看起来与构建PySide时的错误非常相似(通过此修复)。但我在编译方面很弱,所以我不能像对pyside那样修复pyqt。
我在virtualenv
中也尝试了pip install PyQt5
,不幸的是,也遇到了同样的失败。
即使使用默认python成功构建(看起来像),运行时也会显示两个错误。
默认的安装路径是"site-packages",而不是ubuntu上的"dist-package"。所以我必须自己改变我的蟒蛇。
当我导入时,最烦人的问题是什么
从PyQt5导入QtCore,QtGui
出现错误:
追踪(最近一次通话):文件",第1行,在从PyQt5导入QtCore,QtGui运行时错误:sip模块实现API v11.0,但PyQt5.QtCore模块需要API v11.1
所有的来源都是官方网站上最新发布的!这是个笑话吗?
最后,我使用apt-get install python3-pyqt5
将pyqt安装到我的默认python3.4.0中。它现在运行得很好,但我仍然找不到为python2.4.1构建PyQt的方法。
这真是一项艰苦的工作!
//usr/bin/ld:/opt/python3.4.1/lib/libpython3.4m.a(abstract.o):在创建共享对象时,不能使用针对"_Py_NotImplementedStruct"的重新定位R_X86_64_32S;使用-fPIC 重新编译
由于链接器找不到libpythonX.X.so
,因此引发此错误。当我构建Python3.4.1
时,我只使用了一个选项--prefix
,所以我的python库中没有共享库。
然后我用--enable-shared
重建我的python,然后安装PyQt5
,并成功导入PyQt。
然而,我意识到我的python版本是3.4.0!Python执行官。已链接到系统python的lib。。。
这篇文章对我帮助很大:http://koansys.com/tech/building-python-with-enable-shared-in-non-standard-location
最后,我添加了LDFLAGS= -Wl,-rpath /opt/python3.4.1/lib
来配置选项:
/configure--prefix=/opt/python3.4.1--启用共享的LDFLAGS=-Wl,-rpath/opt/python3.4.1/lib
然后安装PyQt5。
现在,我可以享受了~(≥▽≦)/~
- C++为构建时间获取QDateTime的可靠方法
- 无法在 CLion 中构建 C++ 项目
- 函数向量_指针有不同的原型,我可以构建一个吗
- 如何使用ndk-build.cmd构建Android.so文件
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 构建可组合有向图(扫描仪生成器的汤普森构造算法)
- 无法使用Qt Creator在Windows中构建yaml-cpp
- 构建一个由C和C++文件组成的库
- llvm构建器向基本块添加终止符
- FLTK 2.0构建和演示,适用于VS2019的2011年左右的代码库
- 如何跨平台将二进制资源构建到程序中?
- 将 OpenCV 与 CMAKE 中的项目一起构建为第三方库的正确方法
- 如何解决 Ninja c++ 构建和执行问题
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- CMake WxWidgets项目成功地在Linux上构建,但没有在Windows上构建
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- 用CMake构建C++协议
- 如何在Ubuntu上构建PyQt5