文件夹结构和导入

方法论

因此,我目前正在从事一个小项目,但在进口方面遇到了困难。最初我有一个像这样的结构:

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吗?

葡萄

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

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

如果不是,请将其包装成包)

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档