Как настроить PyQt4 для Python 3 в Ubuntu?
Этот вопрос был первоначально задан в askubuntu.com, но не привлек внимания, поэтому я думаю, что это лучшее место, чтобы спросить.
Я установил PyQt4 с синаптической.
Я использую Python3, поэтому мне нужно настроить путь для PyQt4 в eclipse, но кажется, что Synaptic только установил PyQt4 для Python 2, так как я нашел только относительные файлы и папки в Python 2.6 и 2.7.
Итак, как я могу заставить PyQt4 работать с Python 3 и затмением?
Благодарю.
ОБНОВЛЕНИЕ:
Я попытался настроить его после этого поста: http://ubuntuforums.org/showthread.php?p=10914908
Но после выполнения всех инструкций без каких-либо ошибок происходит, я получаю ошибку при запуске этого кода в Python 3.2:
>>> import PyQt4
Сообщение об ошибке:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named PyQt4
Но странно то, что один и тот же код не приводит к ошибке в Python 2.7 (на моем компьютере установлены оба 2.7 и 3.2)
3 ответа
Установите пакеты, необходимые для компиляции (я не уверен, что все они необходимы):
sudo apt install build-essential python3-dev libqt4-dev
Загрузите исходники последней версии SIP - sip-4.12.4.tar.gz (источник Linux, UNIX, MacOS/X).
Распакуйте их и войдите в каталог:
vic@wic:~/Desktop/sip-4.12.4$ python3 configure.py
This is SIP 4.12.4 for Python 3.2 on linux2.
The SIP code generator will be installed in /usr/bin.
...
Creating sip module Makefile...
vic@wic:~/Desktop/sip-4.12.4$ make
make[1]: Entering directory `/home/vic/Desktop/sip-4.12.4/sipgen'
...
make[1]: Leaving directory `/home/vic/Desktop/sip-4.12.4/siplib'
vic@wic:~/Desktop/sip-4.12.4$ sudo make install
make[1]: Entering directory `/home/vic/Desktop/sip-4.12.4/sipgen'
...
cp -f /home/vic/Desktop/sip-4.12.4/sipdistutils.py /usr/lib/python3/dist-packages/sipdistutils.py
vic@wic:~/Desktop/sip-4.12.4$
Загрузите исходные коды последней версии PyQt - PyQt-x11-gpl-4.8.5.tar.gz (Linux, UNIX source) и установите ее:
vic@wic:~/Desktop/PyQt-x11-gpl-4.8.5$ python3 configure.py
Determining the layout of your Qt installation...
This is the GPL version of PyQt 4.8.5 (licensed under the GNU General Public License) for Python 3.2 on linux2.
Type '2' to view the GPL v2 license.
Type '3' to view the GPL v3 license.
Type 'yes' to accept the terms of the license.
Type 'no' to decline the terms of the license.
Do you accept the terms of the license? yes
Found the license file pyqt-gpl.sip.
Checking to see if the QtGui module should be built...
...
Checking to see if the dbus support module should be built...
The Python dbus module doesn't seem to be installed.
Qt v4.7.2 free edition is being used.
SIP 4.12.4 is being used.
The Qt header files are in /usr/include/qt4.
...
Creating pyqtconfig.py...
vic@wic:~/Desktop/PyQt-x11-gpl-4.8.5$ make
make[1]: Entering directory `/home/vic/Desktop/PyQt-x11-gpl-4.8.5/qpy'
...
make[1]: Leaving directory `/home/vic/Desktop/PyQt-x11-gpl-4.8.5/designer'
vic@wic:~/Desktop/PyQt-x11-gpl-4.8.5$ sudo make install
make[1]: Entering directory `/home/vic/Desktop/PyQt-x11-gpl-4.8.5/qpy'
...
cp -f PyQt4.api /usr/share/qt4/qsci/api/python/PyQt4.api
Обратите внимание, что я запускаю python3
вместо python
,
Вы должны иметь возможность установить Python 3 версию PyQt4 в Ubuntu. Откройте терминал и введите:
sudo apt-get install python3-pyqt4
Таким образом, вам не нужно компилировать Qt4 из исходного кода. Я также проверил это и pyqt4 работает с python3.
Источник: быстрый поиск в репозиториях Ubuntu.
Похоже, что в Ubuntu есть только пакеты pyqt4 для python2, поэтому вам придется скомпилировать отдельный pyqt4 для python3.
Вы можете проверить, что вы уже установили, посмотрев в site-packages
каталог для каждого питона. Чтобы найти эти каталоги, запустите:
python2.7 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
python3.2 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
Если pyqt установлен правильно, должен быть PyQt4
каталог под site-packages
содержащий пару десятков *.so
файлы.
Предположительно, там не будет ничего для python3.2, поэтому вы не можете импортировать pyqt.
Чтобы установить pyqt для python3.2, следуйте этим инструкциям. Обратите внимание, что очень важно, чтобы вы настраивали сборку, используя правильный питон, например:
/usr/bin/python3.2 configure.py