Python не находит кастомный PyQt5
Поскольку официальная установка pyqt5 в репозиториях Ubuntu, похоже, не поддерживает QtQuick, я попытался установить pyqt5 из исходного кода. Кажется, что сама установка работает правильно, но при запуске скрипта python, использующего PyQt5, python жалуется, что не может найти этот PyQt.
После сборки 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 <info@riverbankcomputing.com>
#
# 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
# info@riverbankcomputing.com.
#
# 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
-сессия (или скрипт), 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 работать?
1 ответ
Вы, вероятно, каким-то образом испортили PYTHONPATH.
Я успешно построил, установил и использовал PyQT, используя виртуальную среду. Итак, вот как установить его с помощью virtualenv. Есть тонны наставников, поэтому, пожалуйста, прочитайте об этом.
Так что установите python-virtualenv
, virtualenvwrapper
(по крайней мере, так они называются в Debian).
mkvirtualenv -p /path/to/python3.3 name
workon name
cd PyQtSource
configure
make
make install
Чтобы использовать эту среду, сделайте:
workon name
python