【问题标题】:Executing other python scripts gives NameError exception执行其他 python 脚本会产生 NameError 异常
【发布时间】:2023-04-01 08:31:01
【问题描述】:

我在同一个文件夹中有两个 .py 脚本,我在一个文件夹中有这样的功能:

def combat_menu():
    exec("combat.py")

这些脚本被命名为 dungeon.py(我正在执行的那个)和战斗.py。

当我执行这个函数时出现这个错误:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\hp\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 1883, in __call__
    return self.func(*args)
  File "C:\Users\hp\Documents\piton\Dungeon\dungeon_Data\dungeon.py", line 25, in combat_menu
    exec("combat.py")
  File "<string>", line 1, in <module>
NameError: name 'combat' is not defined

我从一个像这样的 tkinter 按钮小部件执行这个功能:

event_button = t.Button(root, text="Open CM", command=combat_menu)

我尝试过导入代码,但这会导致 ImportError。

【问题讨论】:

  • 你的两个 .py 文件的名称是什么?
  • 请将相关代码发布为minimal reproducible example,以便人们(如我;-) 可以查看。
  • 做了一些修改,希望对您有所帮助!
  • 您可能想要导入它。这对stackoverflow.com/questions/2349991/…有帮助吗?
  • 通常建议指定执行文件的完整路径 - 有时环境会更改搜索文件的根位置。

标签:
python
python-3.x
tkinter
import