Подтвердить что ты не робот

Как настроить PyQt4 для Python 3 в Ubuntu?

Этот вопрос был первоначально задан на askubuntu.com, но не получил никакого внимания, поэтому я думаю, что, возможно, это лучшее место, чтобы спросить.

Я установил PyQt4 с синаптическим.

Я использую Python3, поэтому мне нужно настроить путь для PyQt4 в eclipse, но, похоже, синаптический только установил PyQt4 для python 2, так как я нашел только относительные файлы и папки под python 2.6 и 2.7.

Итак, как я могу заставить PyQt4 работать с Python 3 и eclipse?

Спасибо.

UPDATE

Я попытался настроить его после этого сообщения: http://ubuntuforums.org/showthread.php?p=10914908#post10914908

Но после выполнения всех инструкций без каких-либо ошибок на пути, я получаю ошибку от запуска этого кода в python 3.2:

>>> import PyQt4

Сообщение об ошибке:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named PyQt4

Но странно то, что тот же код вызывает ошибку NO в python 2.7 (у меня есть как 2.7, так и 3.2, установленные на моей машине)

4b9b3361

Ответ 1

Установите пакеты, необходимые для компиляции (я не уверен, что все это необходимо):

sudo apt install build-essential python3-dev libqt4-dev

Загрузите источники последних SIP - sip-4.12.4.tar.gz (источник Linux, UNIX, MacOS/X).

Распакуйте их и введите каталог:

[email protected]:~/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...

[email protected]:~/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'

[email protected]:~/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

[email protected]:~/Desktop/sip-4.12.4$

Загрузите источники новейшего PyQt - PyQt-x11-gpl-4.8.5.tar.gz (Linux, источник UNIX), и установите его:

[email protected]:~/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...

[email protected]:~/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'

[email protected]:~/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.

Ответ 2

Вы должны иметь возможность установить python 3 версию PyQt4 в ubuntu. Откройте терминал и введите:

sudo apt-get install python3-pyqt4

Таким образом, вам не нужно компилировать Qt4 из источника. Я также проверил это, и pyqt4 работает с python3.

Источник: Быстрый поиск в репозиториях ubuntu.

Ответ 3

Похоже, что у ubuntu есть только пакеты pyqt4 для python2, поэтому вам придется скомпилировать отдельный pyqt4 для python3.

Вы можете проверить, что вы уже установили, просмотрев каталог site-packages для каждого python. Чтобы найти эти каталоги, запустите:

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 установлен правильно, в site-packages должен быть каталог PyQt4, содержащий несколько десятков файлов *.so.

Предположительно, ничего не будет найдено для python3.2, поэтому вы не можете импортировать pyqt.

Чтобы установить pyqt для python3.2, следуйте этим инструкциям. Обратите внимание, что очень важно, чтобы вы сконфигурировали сборку с помощью правильного питона, например:

/usr/bin/python3.2 configure.py