2014-01-28 4 views
1

Поскольку официальная установка pyqt5 в репозиториях ubuntu, похоже, не поддерживает QtQuick, я попытался установить pyqt5 из источника. Сама установка работает корректно, но при запуске скрипта python, использующего PyQt5, python жалуется, что он не может найти PyQt.Python не находит пользовательских PyQt5

После сборки sip 4.15.5, я скачал PyQt5.2. Он должен быть совместим с моей версией Qt (выход из qmake --version):

QMake version 3.0 
Using Qt version 5.2.0 in /opt/qt5.1.1/5.2.0/gcc_64/lib 

Я побежал

Выход configure.py из PyQt можно найти здесь: https://gist.github.com/Mitmischer/8677889.

Установочный выход pyqt можно найти здесь: https://gist.github.com/Mitmischer/8677780.

После sudo make install, я вижу папку PyQt5 в /usr/lib/python3.3/site-packages, что довольно приятно. Тем не менее, если я бегу кота PyQt5/__init__.py, нет никакого фактического кода внутри:

# Copyright (c) 2014 Riverbank Computing Limited <[email protected]> 
# 
# This file is part of PyQt5. 
# 
# This file may be used under the terms of the GNU General Public License 
# version 3.0 as published by the Free Software Foundation and appearing in 
# the file LICENSE included in the packaging of this file. Please review the 
# following information to ensure the GNU General Public License version 3.0 
# requirements will be met: http://www.gnu.org/copyleft/gpl.html. 
# 
# If you do not wish to use this file under the terms of the GPL version 3.0 
# then you may purchase a commercial license. For more information contact 
# [email protected] 
# 
# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 
# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 

Да, это все, что находится внутри этого файла. Я не знаю, будет ли это так, но мне это кажется странным. Кроме того (ls PyQt5):

__init__.py    QtCore.so  QtGui.so   QtMultimediaWidgets.so QtPositioning.so QtQuick.so  Qt.so  QtTest.so  QtX11Extras.so 
_QOpenGLFunctions_2_0.so QtDBus.so  QtHelp.so  QtNetwork.so   QtPrintSupport.so QtSensors.so  QtSql.so QtWebKit.so QtXmlPatterns.so 
QtBluetooth.so   QtDesigner.so QtMultimedia.so QtOpenGL.so    QtQml.so   QtSerialPort.so QtSvg.so QtWidgets.so uic/ 

Не похоже, что питоновски.

Как предложено в другом месте, я (надеюсь) установить мой PYTHONPATH соответствующим образом:

> echo $PYTHONPATH 
/usr/lib/python3.3/site-packages/ 

Теперь, если я начну интерактивный python3.3 -session (или сценарий), PyQt5 не может быть найдено:

Python 3.3.2+ (default, Oct 9 2013, 14:50:09) 
[GCC 4.8.1] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from PyQt5 import * 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named 'PyQt5' 
>>> 

Кто-нибудь еще пытался установить PyQt5 из источника? Что я могу сделать, чтобы PyQt работал?

+0

Кажется, что установка прошла успешно. '__init __. Py' должен быть пустым:' PyQt5' - просто пространство имен. Файлы '* .so' - это все скомпилированные модули расширения. Единственное, о чем я могу думать, это то, что вы каким-то образом запускаете «неправильный» python3.3 - у вас есть несколько установленных? – ekhumoro

+0

@ekhumoro: Я думаю, нет: 'which -a python3.3' просто показывает'/usr/bin/python3.3' –

+0

Любопытный. В качестве эксперимента откройте новый интерактивный сеанс, затем выполните 'os.chdir ('/ usr/lib/python3.3/site-packages')' и попробуйте импортировать PyQt5. – ekhumoro

ответ

1

Вы случайно сорвали PYTHONPATH.

Я успешно построил, установил и использовал PyQT, используя виртуальную среду. Итак, вот как установить его с помощью virtualenv. Есть тонны преподавателей, поэтому, пожалуйста, прочитайте об этом.

Поэтому установите python-virtualenv, virtualenvwrapper (по крайней мере, это то, что они вызывают на Debian).

mkvirtualenv -p /path/to/python3.3 name 
workon name 
cd PyQtSource 
configure 
make 
make install 

Чтобы использовать эту enviorment сделать:

workon name 
python 
+0

Вы абсолютно правы, я не задал PYTHONPATH правильно. –

+0

Рад, что я помог :) –

Смежные вопросы