使用importlib从另一个文件夹导入脚本

时间:2019-08-14 08:54:58

标签: python python-3.x python-import importerror

我有一个包含主脚本的项目文件。此外,我还有一个子目录,其中包含要在不同时间导入的脚本。这就是路径的样子。 \\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文件夹中找到与某种用户输入匹配的脚本。因此,如果用户输入脚本的名称,我希望能够将其导入

0 个答案:

没有答案