Python:将目录一级添加到系统路径

问题描述

我已经有解决此问题的方法,但只想确保它是最佳方法,然后按照我认为的方法进行即可。我有这样的文件夹结构:

Main
+ data
++ __init__.py
++ get_data.py
+ work
++ stuff.py

get_data.py有一个我需要导入的名为GetData的类。我在stuff.py。当我使用时:

from data.get_data import GetData

它不起作用。所以我这样做了:

sys.path.append(".")

如果我这样做,我的代码将起作用。但是,当我通过以下方式查看路径时,看起来有点奇怪:

print(sys.path)

我明白了:

['C:\\Main\\Notebooks','.']

我认为我正在做的是获取当前工作目录,并将该路径附加到更高一级。这可行。这个对吗?有更好的解决方案吗?

解决方法

您可以尝试在文件开头添加以下语句:

 import os,sys 
 sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

它将需要导入的模块的路径添加到系统路径中。

enter image description here

,

您必须在__init__.pydata目录中添加一个空的work文件。

主要

  • 数据
    ++ __init__.py
    ++ get_data.py
  • 工作
    ++ __init__.py
    ++ stuff.py

之后from data.get_data import GetData将起作用。