Python项目结构:
src/
- package-name/
-- A/
---B/
b1.py
---C/
c1.py
在c1.py
中,它使用在b1.py
中定义的函数。我尝试2种方法:
方法1:from src.package-name.A.B.b1 import b1_func
方法2:from ..B.b1 import b1_func
导入模块从package-name
目录开始,因此src/
在导入模块中不可见。因此,在导入我自己的模块时,Method1无法正常工作。
Method2在IDE中运行时不起作用。 ValueError: attempted relative import beyond top-level package
有什么建议吗?谢谢。
答案 0 :(得分:0)
A和B中是否有__init__.py
个文件?可能值得将b1_func正确导入到B的文件中,然后再导入A的初始化文件中。
B __init__.py
from .b1_file import b1_func
或其他
和一个__init__.py
from B import b1_func
那么您应该可以import ..b1_func
答案 1 :(得分:0)
我将“内容根目录”更改为PyCharm和import package-name.B.b1
中的程序包名称目录。可以。
答案 2 :(得分:0)
按照以下步骤将包导入到您想要的任何地方
即:Message 2
和Message 3
和__init__.py in src
以及__init__.py in package
和__init__.py in A
。
__init__.py in B
中的__init__.py in C
导入函数,请将这些行添加到b1.py
文件中。c1.py