繁体   English   中英

动态模块导入在 python 中不起作用 - 为什么不呢?

[英]Dynamic module import doesn't work in python - why not?

我正在尝试将 python 脚本foo.py动态导入另一个可执行脚本,该脚本位于深度嵌套的文件夹中。 我在用着

import os
sys.path.insert(0, '../../../../.') 
from foo import Bar

这行得通,我可以愉快地使用Bar

我想让脚本动态确定文件夹深度,例如

import os
root_path = os.path.relpath(os.popen("git rev-parse --show-toplevel").read()).replace("../reponame", ".")
print(root_path) # prints '../../../../.'
sys.path.insert(0, root_path)
from foo import Bar

但是这不起作用,脚本抱怨它在运行时找不到 Bar 。

为什么是这样?

如果您调试,您会看到root_path实际上是'../../../../.\n' 删除\n

root_path.strip()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM