Приложение PySide2, которое не запускается через VSCODE

#python #python-3.x #visual-studio-code #pyside2

#python #python-3.x #visual-studio-code #pyside2

Вопрос:

Я попытался закодировать очень простое приложение для конвертации валют, поэтому предполагается, что скрипт откроет окно с конвертером валют.

Но когда я запускаю файл в терминале Python через VS Code на моем Mac, открывается окно запуска Python, которое не отвечает. Когда я открываю этот скрипт в режиме ожидания и запускаю его, он отлично работает (на моем Mac).

Когда я запускаю тот же файл в терминале Python через VS Code на своем ноутбуке Windows10, он работает отлично.

Я использую Python 3.9 и те же библиотеки (PySide2 и CurrencyConverter установлены на обоих устройствах)

 from PySide2 import QtWidgets, QtGui, QtCore
import currency_converter


class App(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.c = currency_converter.CurrencyConverter()
        self.setWindowTitle("Convertisseur de devises")
        self.setup_ui()
        self.setup_connections()
        self.set_default_values()
        self.setup_css()
        self.resize(500, 50)

    def setup_ui(self):
        self.layout = QtWidgets.QHBoxLayout(self)
        self.cbb_devisesFrom = QtWidgets.QComboBox()
        self.le_montant = QtWidgets.QSpinBox()
        self.cbb_devisesTo = QtWidgets.QComboBox()
        self.le_montantConverti = QtWidgets.QSpinBox()
        self.btn_inverser = QtWidgets.QPushButton("Inverser devises")

        self.layout.addWidget(self.cbb_devisesFrom)
        self.layout.addWidget(self.le_montant)
        self.layout.addWidget(self.cbb_devisesTo)
        self.layout.addWidget(self.le_montantConverti)
        self.layout.addWidget(self.btn_inverser)

    def setup_connections(self):
        self.cbb_devisesFrom.activated.connect(self.compute)
        self.cbb_devisesTo.activated.connect(self.compute)
        self.le_montant.valueChanged.connect(self.compute)
        self.btn_inverser.clicked.connect(self.inverser_devises)

    def setup_css(self):
        self.setStyleSheet("""
        background-color: rgb(30, 30, 30);
        color: rgb(240, 240, 240);
        border: none;
        """)
        style = """
        QComboBox::down-arrow {
            image: none;
            border-width: 0px;
        }
        QComboBox::drop-down {
            border-width: 0px;
        } 
        """
        self.cbb_devisesFrom.setStyleSheet(style)
        self.cbb_devisesTo.setStyleSheet(style)

    def set_default_values(self):
        self.cbb_devisesFrom.addItems(sorted(list(self.c.currencies)))
        self.cbb_devisesTo.addItems(sorted(list(self.c.currencies)))
        self.cbb_devisesFrom.setCurrentText("EUR")
        self.cbb_devisesTo.setCurrentText("EUR")
        self.le_montant.setValue(100)
        self.le_montantConverti.setValue(100)
        self.le_montant.setRange(1, 1000000)
        self.le_montantConverti.setRange(1, 1000000)

    def compute(self):
        montant = self.le_montant.value()
        deviseFrom = self.cbb_devisesFrom.currentText()
        deviseTo = self.cbb_devisesTo.currentText()

        try:
            resultat = self.c.convert(montant, deviseFrom, deviseTo)
        except currency_converter.currency_converter.RateNotFoundError:
            print("Rate not found")
        else:
            self.le_montantConverti.setValue(resultat)

    def inverser_devises(self):
        devise_from = self.cbb_devisesFrom.currentText()
        devise_to = self.cbb_devisesTo.currentText()

        self.cbb_devisesFrom.setCurrentText(devise_to)
        self.cbb_devisesTo.setCurrentText(devise_from)
        self.compute()


app = QtWidgets.QApplication([])
win = App()
win.show()
app.exec_()
 

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

1. вы пробовали запускать его в терминале?

2. Привет, спасибо за помощь! Да, я попробовал и получил эту ошибку: achillederibreux@MacBook-Pro-de-Achille app % python App.py Трассировка (последний последний вызов): Файл «App.py «, строка 1, в <module> из PySide2 импортируйте QtWidgets ImportError: нет модуля с именем PySide2 achillederibreux@MacBook-Pro-de-Achilleверсия пакета списка приложений % pip3.9 —————— ——- конвертер валют 0.5.5 CurrencyConverter 0.14.4 pip 20.3.3 PySide2 5.15.2 инструменты настройки 49.2.1 shiboken2 5.15.2

3. похоже, вы не установили этот модуль, попробуйте запустить pip install PySide2

4. Привет! спасибо, что помогли мне! Это говорит мне, что оно уже установлено.. «Требование уже выполнено: PySide2 в …» и оно работает с Idle

5. я подозреваю, что у вас установлено несколько версий python, попробуйте запустить его с помощью python3 и с помощью python

Ответ №1:

Пожалуйста, используйте команду « pip show PySide2 » (или « pip3 show PySide2 «) в терминале VS Code, чтобы проверить, соответствует ли место установки модуля «PySide2» среде Python, отображаемой в нижнем левом углу VS Code:

введите описание изображения здесь

Если результаты противоречивы, пожалуйста, используйте сочетание клавиш Ctrl Shift `, чтобы открыть новый терминал VS Code, и он автоматически войдет в выбранную среду.

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

1. Привет! Спасибо, что помогли мне! Я нашел решение, и это была ошибка между PySide2 и macOS Big sur, я использовал модуль mathplotlib, и теперь он работает хорошо!