文件夹结构和导入

时间:2018-12-04 11:32:47

标签: python import

所以我目前正在做一个小项目,但是在进口方面遇到了困难。 最初我有这样的结构:

root -> python
     -> tests  -> testscripts

我从python文件夹运行测试,并且在该文件夹中有一个名为pertest_resources的类,其中包含指向其他文件夹(如根目录和脚本文件夹)的路径。

python_folder = os.path.realpath(os.curdir)
perf_root_folder = os.path.realpath(python_folder + "/../")
test_root_folder = os.path.realpath(python_folder + "/../tests")
script_folder = os.path.realpath(test_root_folder + "/scripts")
network_folder = os.path.realpath(test_root_folder + "/networks")
output_folder = os.path.realpath(test_root_folder + "/output")
input_folder = os.path.realpath(test_root_folder + "/input")
kit_folder = os.path.realpath(perf_root_folder + "/kit")
sys.path.append(python_folder)
sys.path.append(script_folder)
sys.path.append(network_folder)

现在,当所有核心文件都位于python文件夹中时,此方法工作正常,但是现在它有点混乱了,我被要求将一些python脚本分支到名为“ networks”的新文件夹,其结构类似于:

root -> python -> perftest_resources.py
     -> tests  -> testscripts
               -> networks -> standard_network.py

现在,我想从python文件夹中运行一个名为test的文件,该文件使用standard_network,该文件又从python文件夹中导入perftest_resources。

我尝试过:

sys.path.append('..' + os.sep + '..') 
from python.perftest_resources import PerfTestResources as pr

,但是当它全部最初是从python文件夹中的test.py运行时,它不起作用。 我需要在两个文件夹中都添加init吗?

1 个答案:

答案 0 :(得分:0)

这是包裹吗?如果为true,则应使用intra-package references,例如

from . import echo
from .. import formats
from ..filters import equalizer

如果没有,请将其包装)

了解更多:https://docs.python.org/3/tutorial/modules.html