【发布时间】: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