如果有目录/home/project/aaa。我知道它是一个 Python 包。
那么,我如何通过知道它的路径来导入这个模块。
意味着,我希望代码有效:
aaa = load_module("/home/project/aaa")
Run Code Online (Sandbox Code Playgroud)
我知道的唯一方法是,添加/home/project到sys.path
但它可能会引起一些问题:
如果我添加/home/project到sys.path
如果pytest路径中有一个目录/home/project。
那么官方的 pytest 包将不起作用。
我试试吧importlib。但似乎importlib只能将文件作为模块导入,而不是路径。
所以,我试试看:
aaa = importlib.import_module("aaa", "/home/project")
Run Code Online (Sandbox Code Playgroud)
或者
aaa = importlib.import_module("aaa", "/home/project/aaa")
Run Code Online (Sandbox Code Playgroud)
他们两个都不工作。
那么,有没有其他方法可以做我想做的事?
哦,我正在使用 Python3.6
更新于 20170628
(注意:有一个__init__.pyin 文件夹/home/project/aaa)
我知道的所有解决方案都是从单个文件导入模块。
如果bbb.py文件夹中有文件/home/project/aaa
然后,添加/home/project/aaa到 sys.path或__path__(无论如何)
import bbb 工作,但不是 import aaa
我想问的是如何将文件夹(或目录)作为模块导入。
对于我的示例,文件夹aaa被视为一个模块。
我想用import aaa …