我有一个包含主脚本的项目文件。此外,我还有一个子目录,其中包含要在不同时间导入的脚本。这就是路径的样子。 \\projectPath\\data\\scripts\\
然后我有一个__init__.py
文件和一个名为Snake.py
的脚本,我正在尝试使用importlib将Snake脚本导入到我的主脚本中。这是我尝试过的:
class RunScript:
gameBar = False
Title = None
script = None
username = None
display = None
scriptFolder = None
#importlib.import_module(name)
def importScript(args):
self = args[0]
self.Title = args[1]
orgiPath = os.path.abspath(os.path.dirname(sys.argv[0]))
if args[2] == 'games':
self.scriptFolder = str(orgiPath) + '\\data\\Game_%s' % self.Title
else:
self.scriptFolder = str(orgiPath) + '\\data\\Program_%s' % self.Title
path = str(orgiPath) + '\\data\\scripts'
os.chdir(path)
print(os.listdir())
self.script = importlib.import_module('Snake')
我已经在python shell中尝试过这样的基础知识:
>>> import importlib, os
>>> path = 'C:\\Users\\26099\\Desktop\\DashProject\\data\\scripts'
>>> os.chdir(path)
>>> os.listdir()
['Snake.py', '__init__.py', '__pycache__']
>>> s = importlib.import_module('Snake')
通过Python Shell导入我的脚本效果很好。问题是当我运行RunScript类时,我无法导入模块,并且收到以下错误:ModuleNotFoundError: No module named 'Snake'
,即使它显示目录中的所有内容时也显示Snake脚本的打印内容。我不确定为什么它在python shell中能正常工作,但是我在主程序中的代码不想导入文件。我的主要程序是在scripts文件夹中找到与某种用户输入匹配的脚本。因此,如果用户输入脚本的名称,我希望能够将其导入