Откуда эта синтаксическая ошибка в моем скрипте PySide2?

Я пишу скрипт для загрузки и отображения файла QML с использованием библиотеки PySide2 для python. В настоящее время работает следующий скрипт:

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

app = QApplication([])
qml_url = QUrl(sys.argv[0])
view = QQuickView()

Однако, когда я добавляю следующую строку:

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

app = QApplication([])
qml_url = QUrl(sys.argv[0])
view = QQuickView()
view.setSource(qml_url)

Я получаю следующую ошибку:

test.py:1:6: Syntax error 
     from PySide2.QtWidgets import QApplication
          ^

Я знаю, что существуют альтернативные библиотеки и методы для загрузки QML в Python, но у меня вопрос: почему я получаю эту синтаксическую ошибку? Его даже нет в строке, которую я добавил.

  • Linux x86_64 (также наблюдается на ARM)
  • Питон v3.6.8
  • PySide2 v5.13.0
  • IDE: вим

person Max    schedule 21.08.2019    source источник
comment
Это вся трассировка? Как проверить, что скрипт работает?   -  person Mad Physicist    schedule 21.08.2019
comment
Это полная трассировка. Я бегу с командой $ python3 test.py   -  person Max    schedule 21.08.2019
comment
Похоже, что есть табуляция или пробелы, которые были вставлены в начало строки, как если бы вы печатали, не обращая внимания, где был курсор или что-то в этом роде.   -  person Mad Physicist    schedule 21.08.2019
comment
Я думал то же самое, но потом попробовал открыть новый файл и перепечатать весь скрипт буква за буквой. Это та же самая ситуация; эта последняя строка вызывает синтаксическую ошибку.   -  person Max    schedule 21.08.2019
comment
@eyllanesc Я отредактировал вопрос и добавил свою ОС и IDE.   -  person Max    schedule 21.08.2019
comment
Это не то, как выглядит синтаксическая ошибка Python.   -  person user2357112 supports Monica    schedule 21.08.2019
comment
Я только что попробовал свою собственную машину Arch; Python v3.7.3 с PySide v5.13.0, ошибка все еще видна.   -  person Max    schedule 21.08.2019
comment
Голосую за хорошую головоломку.   -  person Mad Physicist    schedule 21.08.2019


Ответы (1)


Это не синтаксическая ошибка Python, как заметил @user2357112. Проблема в том, что вы пытаетесь загрузить исходный код Python как URL-адрес QML:

qml_url = QUrl(sys.argv[0])

что просто PySide2.QtCore.QUrl('test.py').

Синтаксическая ошибка возникает при вызове setSource, который сообщает, что первая строка не является допустимым QML.

person Selcuk    schedule 21.08.2019