在不同的父目录

时间:2018-02-07 13:29:36

标签: python import directory parent subdirectory

我有以下目录结构:

- src
    - __init__.py
    - scripts
        - __init__.py
        - preprocessing.py
    - project1
        - main.py
    - project2
        - main.py

我试图从scripts文件中访问main.py文件夹中的脚本。

我已尝试添加__init__.py(空白)文件,并使用import scriptsfrom src import scriptsfrom .. import scripts进行导入。这些似乎都不起作用。

我得到:ValueError: Attempted relative import in non-package,或者找不到任何模块。

提前致谢!

P.S。我假设目录结构将很快变得更深(例如scriptsproject1 / project2内的多个子目录。因此,如果这些也是解决这个问题的简单方法,那将非常感激。

1 个答案:

答案 0 :(得分:0)

处理它的一种方法(尽管不是最干净的)是手动将根目录添加到sys.path变量中,以便python可以在其中查找模块,例如,在main.py中可以添加这些线在顶部:

#/src/project1/main.py
import os
import sys
sys.path.append(os.getcwd() + '\\..\\')  # this is the src directory

这将允许python在运行脚本的目录上方的目录中查找模块,这将起作用:

import scripts.preprocessing

请记住,python只会在脚本运行时在同一目录或下面查找模块。如果你启动/src/project2/main.py,python对/ src / project1 /或/ src / scripts /

一无所知
相关问题