2017-02-04 24 views
0

Я застреваю с одной ошибкой при построении PyQt5 для rasberry pi. Я успешно смог запустить приложение, которое использует QQmlApplicationEngine на рабочем столе Windows. Теперь я хотел бы запустить такое же применение в Raspberry Pi 3. Я построить PyQt5 (5.4.1v) от источника и попытался запустить приложение, но я получаю сообщение об ошибке:Установка QtQml в Raspberry pi

ImportError: No Module Found "PyQt5.QtQml".

я понял, что, когда я строить PyQt5 от источника, я получаю:

Project Error: Unknown module(s) in QT: qml

и показывает мне список модулей, которые будут построены.

Просто для справки, я использую raspbian и установил следующее, прежде чем строить PyQt5.

sudo apt-get update

sudo apt-get install qtcreator

sudo apt-get install qt5-qmake

добавил: "экспорт QT_SELECT = qt5" в моем "~/.profile" и "~/.bashrc"

sudo apt-get install qt5-default qt5-qmake qtbase5-dev-tools qttools5-dev-tools build-essential libboost-dev libboost-system-dev libboost-filesystem-dev libboost-program-options-dev libboost-thread-dev libssl-dev libdb++-dev libgl1-mesa-dev

Как я должен установить QtQml в PyQt5? Пожалуйста, помогите ...

Спасибо заранее.

ответ

2

PyQt5 (как вы знаете), просто оболочка для библиотек Qt C++. Чтобы использовать определенный модуль в PyQt5, необходимо установить базовую библиотеку C++.

Первое сообщение об ошибке показывает, что отсутствует модуль PyQt5.QtQml, что соответственно приводит к выводу о том, что базовая оболочка Python отсутствует.

Второе сообщение об ошибке, вероятно, сгенерировано на уровне C++ и означает, что отсутствует необходимая библиотека Qt C++ для этого модуля.

Поскольку вы строите PyQt5, вам нужны не только библиотеки времени выполнения, но также пакеты разработки для Qt. Для QML вам нужен пакет qtdeclerative5-dev и libqt5qml5 (я думаю, это было имя библиотеки времени исполнения). Они, конечно, зависят от множества других пакетов, которые будут автоматически установлены.

PS: Не забудьте библиотеку SIP, которую PyQt имеет как зависимость, независимо от того, какие модули Qt вы хотите использовать.

+0

Yoo. Спасибо ... Мне не хватало qtdeclarative5-dev и libqt5qml5. После установки была установлена ​​работа, она работала, когда я импортировал PyQt5.QtQml на консоль python. Еще один вопрос, где я могу найти список зависимостей, необходимых для установки определенных пакетов PyQt5, так как я не уверен, когда мне потребуются другие пакеты и будет отсутствовать. Не хочу, чтобы кого-то избивали из-за этого. – ryuk

+0

Вы можете посмотреть [список всех компонентов] (http://pyqt.sourceforge.net/Docs/PyQt5/py-modindex.html), поддерживаемый PyQt5, и оттуда вы должны посмотреть [официальные документы Qt] (http://doc.qt.io) или Google, чтобы искать подсказки. Зависимости (по размеру) можно получить, используя 'apt-cache depend ' или глядя на «Dependecies» в диспетчере пакетов Synaptic, когда выбран данный пакет. Обычно вам не нужно это делать, если вы устанавливаете вещи через репозитории, но, поскольку вы строите их самостоятельно, я думаю, что это путь. :) Надеюсь это поможет. – rbaleksandar

+0

Я старался идти с легким путем, но я не нашел версию PyQt 5.7.1 или более поздней версии, когда загружался с помощью sudo apt-get install. Итак, я должен был скомпилировать его из источника. Теперь я получаю сообщение об ошибке модуль '' QtQuick "версия 2.7' не установлен, и я могу загрузить' version 1.0' который doesnot fullfill мой цель. То же самое с 'QtQuckControls 2.0', который мне нужен, но имеет' version 1.0' – ryuk