我在理解Python中import
(绝对和相对)的工作方式时遇到问题
为了简洁起见,我将复制我的工作目录并省略一些文件:
A/
B/
__init__.py
main.py
C/
__init__.py
module1.py
module2.py
main.py
需要f1
和f2
来自module1.py
module1.py
需要来自{
在修改和阅读文档之后,我将函数从module1.py
文件导入到main.py
文件中。我必须在main.py
内执行以下操作:
from .C.module1 import f1, f2
module1.py
依赖于来自module2.py
的函数。这很简单:在module1.py
内部:
from module2 import f3
这样我可以直接调用module1.py
,它将加载f3
;但是,在my main.py(顺便说一句,这是一个Flask应用程序)中,它不会加载,因为module1.py
抛出ModuleNotFoundError: No module named 'module2'
。我想这与我现在在另一个目录有关。无论如何,如果在module1.py
中,我将from module2 import f3
更改为from .module2 import f3
,main.py
将起作用,但是我不能直接调用module1.py
文件,因为它将引发ModuleNotFoundError: No module named '__main__.module2'; '__main__' is not a package
异常
编辑:意外交换名称
注意,我在两个目录/包中都有__init__.py
。我应该怎样做才能使main.py
和module1.py
都工作
test/main.py
test/C/module1.py
test/C/module2.py
test/C/__init__.py
这就是允许我们在
main.py
中做from C import f1, f2, call_f3
的原因main.py
的输出相关问题 更多 >
编程相关推荐