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

Python:向系统路径添加一级目录,python,visual-studio-code,path,sys,Python,Visual Studio Code,Path,Sys,我已经有了这个问题的解决方案,但我只是想确保它是最优的,并按照我认为的那样去做。我的文件夹结构如下: Main + data ++ __init__.py ++ get_data.py + work ++ stuff.py get_data.py有一个名为GetData的类,我需要导入该类。我很忙。当我使用: from data.get_data import GetData 它不起作用。所以我这样做了: sys.path.append(".") 如果我这样做,我的代码

我已经有了这个问题的解决方案,但我只是想确保它是最优的,并按照我认为的那样去做。我的文件夹结构如下:

Main
+ data
++ __init__.py
++ get_data.py
+ work
++ stuff.py
get_data.py有一个名为GetData的类,我需要导入该类。我很忙。当我使用:

from data.get_data import GetData
它不起作用。所以我这样做了:

sys.path.append(".")
如果我这样做,我的代码就会工作。但是,当我通过以下途径查看路径时,它看起来有点奇怪:

print(sys.path)
我明白了:

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

我想我正在做的是将当前的工作目录添加到更高一级的路径。这是有效的。这是正确的吗?是否有更理想的解决方案?

您必须在
数据
工作
目录中添加一个空的
\uuu init\uuuuuuuy.py
文件

主要

  • 数据
    ++
    \uuuu init\uuuuu.py

    ++获取_data.py
  • 工作
    ++
    \uuuu init\uuuuu.py

    ++stuff.py

之后,从data.get\u data导入GetData将起作用。

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

 import os,sys 
 sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
它将需要导入的模块路径添加到系统路径


我这么做了,但忘了把它贴在这里。虽然在Python 3.3+中没有init.py,它仍然可以工作。