【问题标题】:Import python modules in a completely different directory在完全不同的目录中导入 python 模块
【发布时间】:2020-04-13 21:44:43
【问题描述】:

我正在编写一个自动使用其他脚本的脚本。我已将其设置为使用 importlib.import_modules() 自动从存储在名为 dependencies 的目录中的 .py 文件导入其他模块

最初,我将dependencies 作为我的应用程序根目录的子目录,这很好用。但是,我的目标是让dependencies 文件夹可能存储在用户想要的任何位置。在我的个人示例中,它位于我的保管箱文件夹中,而我的脚本完全从不同的目录运行。

我这辈子似乎无法再检测和导入模块,而且我没有想法。

有人对如何实现这一点有更好的想法吗?

这是路径结构的示例: E: |_ Scripts: | |_ Mokha.py | |_ Dropbox: | |_ Dependencies: | |_ utils.py

这是我的导入代码:(我正在读取 JSON 文件以获取依赖项名称并遍历列表中的每个项目)

def importPythonModules(pythonDependencies): chdir(baseConfig["dependencies-path]) for dependency in pythonDependencies: try: moduleImport = dependency module = importlib.import_module(moduleImport) modules[dependency] = module print("Loaded module: %s" % (dependency)) except ModuleNotFoundError as e: print(e) raise Exception("Error importing python dependecies.") chdir(application_path)

我得到的错误是No module named 'utils'

我已经尝试将 init.py 放在依赖项文件夹、我的 Dropbox 的根目录中,但都无济于事。

这一定是可能的,对吧?

【问题讨论】:

    标签: python python-import python-importlib


    【解决方案1】:

    更新:我解决了。

    sys.path.append(baseConfig['dependencies-path'])

    对解决方案不太超级满意,但它现在可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-29
      • 2014-11-16
      • 1970-01-01
      • 1970-01-01
      • 2017-08-06
      • 1970-01-01
      相关资源
      最近更新 更多