对于Python 3,在这个沙箱中,foo有一个函数print_bar()我想在script1中使用。
myApp/
main_folder/
helper/
__init__.py
foo.py
scripts/
script1.py
在script1中:
from ..helpers import foo
foo.print_bar()
我遇到了" ValueError:尝试相对导入超出顶级包"。
很好,我会尝试在其他SO问题上看到的sys路径内容。
import os
import sys
# Add parent folder path to sys.path
cur_path = os.path.dirname(os.path.realpath(__file__))
parent_path = os.path.dirname(cur_path)
sys.path.append(parent_path)
from helpers import foo
foo.print_bar()
好的,但这有点令人费解。有没有更简单的说法,"上一个目录并导入x?"
似乎是相对导入的"来自..helpers import foo"是什么应该工作,但我没有做对,还是我没有将它用于预期目的?
答案 0 :(得分:0)
以下方法可用于在python路径中包含父文件夹:
import sys, os
sys.path.append('..') # method 1
sys.path.append(os.path.abspath('..')) # method 2
sys.path.append(os.pardir) # method 3