Скрипт Python выдает ошибку, за исключением случаев, когда он находится в режиме отладки, но отлично работает в другой системе

#python #debugging #visual-studio-code

Вопрос:

Как указано в названии, этот скрипт отлично работает на моем рабочем столе, и все необходимые пакеты установлены на моем ноутбуке, хотя по какой-то причине он выдает эту ошибку. У него нет никаких проблем в режиме отладчика, но он не будет работать, когда вы просто пытаетесь запустить это нормально в VSCode

 import tkinter as tk
import requests


#Functions

def usd_to_yuan():
    yuan = (float(conversion.get("1.0", "end-1c")) * 6.47)
    btn_load.config(text=f"The conversion is roughly {yuan} yuan")

def yuan_to_usd():
    dollars = (float(conversion.get("1.0","end-1c")) * 0.15)
    btn_load2.config(text=f"The conversion is roughly {dollars} usd")


#Format Window

window = tk.Tk()
window.geometry("800x600")
window.title("Currency Conversion")
window.config(padx=5,pady=5,background="#E1C1F5")

title_label = tk.Label(window, text = "Currency Conversion")
title_label.config(font=("Arial",16))
title_label.pack(padx=5,pady=5)

btn_load = tk.Button(window,text="Convert to CNY", command=usd_to_yuan)
btn_load.config(font=("Arial",20))
btn_load.pack(padx=10,pady=10)

btn_load2 = tk.Button(window,text="Convert to USD", command=yuan_to_usd)
btn_load2.config(font=("Arial",20))
btn_load2.pack(padx=10,pady=10)

conversion = tk.Text(window,height=1,width=20)
conversion.config(font=("Arial",10))
conversion.pack(padx=5,pady=5)

window.mainloop()
 

Скриншот ошибки, которую он выбросил

Скриншот ошибки, которую он выбросил

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

1. Я скопировал ваш код и запустил его на своей машине — единственная проблема, с которой я столкнулся, заключалась в том, что по какой-то причине я не могу заставить Python распознать requests модуль, хотя в нем говорится, что он установлен. Но код, который вы опубликовали, все равно не использует этот модуль. Так что код сработал для меня нормально. Можете ли вы скопировать все сообщение об ошибке, а не только его часть?

2. «[Запуск] python -u «/Users/xiaoan/Desktop/Programming/Python/CurrencyConverter.py» Файл «/Users/xiaoan/Desktop/Programming/Python/CurrencyConverter.py», строка 9 btn_load.config(текст=f»Конвертация примерно {юань} юань») ^ Синтаксическая ошибка: недопустимый синтаксис [Сделано], выведен с кодом=1 за 0,099 секунды » Это весь вывод терминала при запуске скрипта, и что касается запросов, я считаю, что он вызывается в моем .get

3. Какую версию Python вы используете? f-строки были введены в Python 3.6, я бы предположил, что ваша версия старше этой. И вы не используете requests модуль в своем conversion.get() вызове, это вызов объекта conversion , который определен как tk.Text объект, поэтому он вызывает get() функцию этого объекта.

4. Ваш код хорошо работает на моей машине, можете ли вы попробовать запустить его в интегрированном терминале, ошибка все еще существует?

5. В чем причина первого ( и последнего ) в yuan = (float(conversion.get("1.0", "end-1c")) * 6.47) , Плохая практика пользовательского интерфейса, чтобы изменить текст кнопки для отображения вывода, что делать, если вы хотите второе преобразование, какую кнопку нажать, код тоже работает нормально для меня