导入位于兄弟目录中的包的最佳方法

时间:2017-07-06 12:46:54

标签: python python-3.x packages python-import

我的文件结构是:

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

1 个答案:

答案 0 :(得分:0)

这种情况正在发生,因为就python而言my_packagescripts目录彼此无关。 要解决您的问题,您可以将__init__.py添加到top目录并尝试使用

from ..function import *