Qt6 для Python (PySide6) в Windows 10: не удается заставить QtQml и QtQuick работать из QML

#python #qt #windows-10 #qml #pyside6

#python #qt #windows-10 #qml #pyside6

Вопрос:

На моем компьютере с Windows 10 я пытаюсь привести несколько простых примеров нового Qt6, а пример на основе QML для меня не работает.

Я использую Python 3.8.6 и виртуальную среду

 python3 -m venv venv
.venvScriptsActivate.ps1
 

pyside6 устанавливается без каких-либо предупреждений в venv

 pip install pyside6
 

и пример hello world, отличный от QML, с использованием QApplication и QLabel, работает нормально (этот: https://doc.qt.io/qtforpython/tutorials/basictutorial/widgets.html )

Что не работает, так это этот пример, взятый из https://doc.qt.io/qtforpython/tutorials/basictutorial/qml.html :

main.py:

 from PySide6.QtWidgets import QApplication
from PySide6.QtQuick import QQuickView
from PySide6.QtCore import QUrl

app = QApplication([])
view = QQuickView()
url = QUrl("view.qml")

view.setSource(url)
view.show()
app.exec_()
 

view.qml:

 import QtQuick 2.0

Rectangle {
    width: 200
    height: 200
    color: "green"

    Text {
        text: "Hello World"
        anchors.centerIn: parent
    }
}
 

сообщения, которые я получаю при попытке запуска, следующие:

 file:///C:/github/aorcl/python-gui-2/view.qml:1:1: Cannot load library C:githubaorclpython-gui-2venvlibsite-packagesPySide6qmlQtQmlWorkerScriptworkerscriptplugin.dll: The specified module could not be found.
     import QtQuick
     ^
file:///C:/github/aorcl/python-gui-2/view.qml: Failed to load dependencies for module "QtQml" version 6.0
file:///C:/github/aorcl/python-gui-2/view.qml: Failed to load dependencies for module "QtQuick" version 6.0
 

Я проверил, и файл не пропал, он есть:

 C:githubaorclpython-gui-2venvlibsite-packagesPySide6qmlQtQmlWorkerScriptworkerscriptplugin.dll
 

Чего еще мне не хватает?

Комментарии:

1. Сбой загрузки библиотеки не обязательно означает, что файла там нет. Похоже, что вы смешивали 32- и 64-разрядные двоичные файлы. Убедитесь, что используемый вами Python имеет ту же разрядность, что и установленный вами Qt.

2. @UnslanderMonica Я установил только PySide6 с помощью pip и ничего больше (на этом компьютере нет отдельной установки Qt). Что заставляет вас думать, что существует проблема с разрядностью? Базовые вещи Qt работают — это не файл QML?

3. @UnslanderMonica Я только что проверил, и оба Python, которые я использую, и библиотеки DLL PySide6, которые я нахожу в venv Lib site-packages PySide6, являются 64-разрядными…

4. Я только что попробовал 3.8.5 и 3.9.1 со свежими средами в моей Windows 10, и оба работают без проблем. Можете ли вы предоставить общий доступ к терминалу, который вы используете для запуска примера, или если вы используете IDE? можете ли вы поделиться содержимым своей переменной среды PATH? возможно, у вас есть другие установки Qt, которые каким-то образом мешают работе вашего приложения.

Ответ №1:

У меня такая же ошибка при использовании Python 3.9.1 Pipenv Windows 10 Powershell. Возможно, это что-то связанное с переменной окружения system PATH.

Затем я попробовал использовать venv и CMD (не Powershell), но активировал среду с .envScriptsactivate.bat помощью вместо .envScriptsActivate.ps1 . Это работает

Комментарии:

1. Пробовал с activate.bat (и я уже использовал venv) — к сожалению, та же проблема.

2. Увидите, поможет ли небольшая очистка этого ПК. К сожалению, у вас нет недавно установленного компьютера с Windows…

Ответ №2:

Моя среда Python3.8 PySide6 Pycharm in win10 .

Я изменил import QtQuick 2.0 на import QtQuick 6.0 . Это работает.