Я пытаюсь запустить приложение с PySide2
из Spyder 3.2.8
и Python 3.6.4
в Anaconda в macOS 10.13.4
.
попытка № 1
После просмотра этой страницы stackoveflow и этой страницы github я изменил свой графический интерфейс с Inline
на Automatic
в Python > Preferences > IPython Console > Graphics
и попытался запустить следующий скрипт ( скрипт № 1 ):
скрипт № 1
import sys
from PySide2.QtWidgets import *
# Create a Qt application
app = QApplication.instance()
if app is None:
print("print something")
app = QApplication(sys.argv)
# Create a Label and show it
label = QLabel("Hello World")
label.show()
# Enter Qt application main loop
app.exec_()
но после запуска получило следующее сообщение об ошибке:
Importing PySide2 disabled by IPython, which has
already imported an Incompatible QT Binding: pyqt5
Есть похожие сообщения о проблемах здесь с matplotlib и здесь с ipython , но это не помогло мне (или я не смог реализовать это должным образом). Затем я попытался реализовать содержимое этой страницы о qtpy , изменив скрипт N ° 1 следующим образом:
скрипт № 2
import os
os.environ['QT_API'] = 'pyside2'
from qtpy.QtWidgets import *
import sys
# Create a Qt application
app = QApplication.instance()
if app is None:
print("print something")
app = QApplication(sys.argv)
# Create a Label and show it
label = QLabel("Hello World")
label.show()
# Enter Qt application main loop
app.exec_()
попытка № 2
С Inline
выбранным в Python > Preferences > IPython Console > Graphics
. Когда я запустил скрипт N ° 2 , приложение запустилось, и я напечатал print something
на консоли. При закрытии приложения я получил Out[1]: 0
в консоли. Однако, когда я снова запускаю скрипт, в консоли не появляется сообщение об ошибке, а окно приложения не отображается
попытка № 3
На этот раз с Automatic
, выбранным в Python > Preferences > IPython Console > Graphics
. Когда я в первый раз запустил скрипт N ° 2 , приложение не запустилось, и я получил следующее сообщение об ошибке
/anaconda3/lib/python3.6/site-packages/qtpy/__init__.py:178: RuntimeWarning: Selected binding "pyside2" could not be found, using "pyqt5"
'using "{}"'.format(initial_api, API), RuntimeWarning)
Out[2]: -1
попытка № 4
С Automatic
, выбранным в Python > Preferences > IPython Console > Graphics
. Когда я запустил скрипт N ° 1 после изменения строки с PySide2.QtWidgets import *
на from PyQt5.QtWidgets import *
: приложение не запустилось, и я получил следующее сообщение об ошибке
Out[1]: -1
попытка № 5
С Inline
, выбранным в Python > Preferences > IPython Console > Graphics
. Когда я запустил скрипт N ° 1 после изменения строки с PySide2.QtWidgets import *
на from PyQt5.QtWidgets import *
: приложение запустилось, и я напечатал print something
на консоли. Я закрыл приложение и получил Out[1]: 0
в консоли. Однако, когда я снова запускаю скрипт, в консоли не появляется сообщение об ошибке, но окно приложения не отображается
N.B. этот вопрос является продолжением этого вопроса