假设我有一个如下所示的目录树:
main -
|
lib-
|
core-
|
fun-
|
some_file
stuff-
|
another_file
如何将some_file
中的模块导入another_file
?每次我尝试进行导入(是的,我知道__ init__.py
)我都会收到错误:
Traceback (most recent call last):
File "file.py", line 6, in <module>
from some_file import some_method
ImportError: No module named some_file
是否可以将模块导入另一个文件?
答案 0 :(得分:1)
如果您正在遍历的所有目录都是Python包(其中包含__init__.py
文件),则可以使用绝对或相对导入进行导入。
假设您从main
包所在的目录运行程序,则导入some_file
模块:
import main.lib.core.fun.some_file
否则,您必须在尝试导入之前附加到Python路径:
import sys
sys.path.append("......main/lib/core")
import fun.some_file
第二个例子假设fun是一个包含__init__.py
文件的Python包。
答案 1 :(得分:0)
只需将__init__.py
文件添加到目录中即可将其视为模块:
main -
|
lib-
|
core-
|
fun-
|
some_file
__init__.py
stuff-
|
another_file
__init__.py
可以是一个空白文件,重要的是它存在。然后,您可以执行import fun.some_file