我的文件结构是:
top\
my_package\
__init__.py
functions.py
scripts\
test.py
main.py
我想在functions.py
中导入test.py
的内容。
在main.py
,我可以使用functions.py
导入from my_package.functions import ...
。
我希望能够在functions.py
中使用test.py
之类的内容导入from ..my_package.functions import ...
,但会引发以下错误:
SystemError: Parent module '' not loaded, cannot perform relative import
top
目录不应该是一个包,因为我希望能够在不运行包中的脚本的情况下运行main.py
。
来自functions.py
的正确/ pythonic方式导入test.py
是什么?
我可以将my_package
添加到PYTHONPATH,但我的代码可移植性较差。我正在使用Python 3.5
答案 0 :(得分:0)
这种情况正在发生,因为就python而言my_package
和scripts
目录彼此无关。
要解决您的问题,您可以将__init__.py
添加到top
目录并尝试使用
from ..function import *