2016-09-09 2 views
1
установки

I A virtualenv и установили pyqt5 (PyQt5-5.7-cp35-cp35m-manylinux1_x86_64.whl):QtQuickControls 2.0 с PyQt5

virtualenv -p /usr/bin/python3.5 . 
source bin/activate 
pip install pyqt5 

Я создал basic.qml файл:

import QtQuick 2.7 
import QtQuick.Controls 2.0 

Rectangle { 
    width: 300 
    height: 100 
    color: "red" 
} 

и пытался загрузить его в моем питона код с:

import sys 
from PyQt5.QtCore import QUrl 
from PyQt5.QtWidgets import QApplication 
from PyQt5.QtQuick import QQuickView 

if __name__ == '__main__': 
    myApp = QApplication(sys.argv) 

    view = QQuickView() 
    view.setSource(QUrl('basic.qml')) 
    view.show() 

    sys.exit(myApp.exec_()) 

Это терпит неудачу с

file:///[...]/main.qml:2:1: plugin cannot be loaded for module "QtQuick.Controls": Cannot load library /[virtualenv]/lib/python3.5/site-packages/PyQt5/Qt/qml/QtQuick/Controls.2/libqtquickcontrols2plugin.so: (libQt5QuickTemplates2.so.5: Can't open shared object file: File or directory not found) 
    import QtQuick.Controls 2.0 
    ^

Process finished with exit code 0 

Я проверил. Этот файл, на который он жалуется, на самом деле не существует. Но как его установить? Поддерживает ли PyQt5 QtQuickControls2 вообще?

Если я переключу импорт в basic.qml от import QtQuick.Controls 2.0 до import QtQuick.Controls 1.2, он работает. Но я хочу использовать новые элементы управления.

+1

Вы можете показать нам ** точно **, как вы создали виртуальную среду? Перечислите точную команду, которую вы дали, чтобы установить PyQt5 и т. Д., Чтобы мы могли проверить, правильно ли вы сделали. – Bakuriu

+0

спасибо. Я редактировал сообщение. – Heinzi

ответ

1

Это похоже на ошибку в PyQt5. Пакет отсутствует как libQt5QuickTemplates2.so, так и libQt5QuickControls2.so.

Надеясь, что сборка Qt 5.7, содержащаяся в пакете PyQt 5.7 и официальная сборка Qt 5.7, доступная на qt.io, построена полностью двоично-совместимым способом, одной из возможностей может быть загрузка и установка Qt 5.7 из qt.io , и скопируйте недостающие библиотеки в ваш virtualenv. Например:

$ cp ~/Qt/5.7/gcc_64/lib/libQt5QuickTemplates2.* path/to/lib/python3.5/site-packages/PyQt5/Qt/lib 
$ cp ~/Qt/5.7/gcc_64/lib/libQt5QuickControls2.* path/to/lib/python3.5/site-packages/PyQt5/Qt/lib 
+0

Я не смог найти трекер ошибок, поэтому я опубликовал эту проблему в списке рассылки PyQt: https://www.riverbankcomputing.com/pipermail/pyqt/2016-September/038043.html – jpnurmi

+1

Должен быть исправлен в следующем выпуске : https://www.riverbankcomputing.com/pipermail/pyqt/2016-September/038044.html – jpnurmi

+0

Отличные новости, спасибо :) – Heinzi