在不同的父目录中导入Python文件

2024-04-29 11:07:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下目录结构:

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

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

我尝试添加__init__.py(空白)文件,并使用import scriptsfrom src import scripts和{}导入。这些似乎都不管用。在

我要么得到:ValueError: Attempted relative import in non-package,要么找不到模块。在

提前谢谢!在


另外,我假设目录结构很快会更深入(例如,scriptsproject1/project2内的多个子目录)。因此,如果这是一个简单的方法来处理这个问题,这将是非常感谢。在


Tags: 文件pyimportsrc目录脚本文件夹init
1条回答
网友
1楼 · 发布于 2024-04-29 11:07:59

处理这个问题的一种方法(尽管不是最干净的方法)是手动将根目录添加到系统路径变量,以便python可以在其中查找模块,例如主.py您可以在顶部添加以下行:

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

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

^{pr2}$

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

相关问题 更多 >