Python: 将目录添加到系统路径上一级
Python: Adding Directory One Level Up to System Path
我已经有了这个问题的解决方案,但只是想确保它是最佳解决方案并按我的想法行事。我有这样的文件夹结构:
Main
+ data
++ __init__.py
++ get_data.py
+ work
++ stuff.py
get_data.py 有一个名为 GetData 的 class 我需要导入。我在 stuff.py。当我使用:
from data.get_data import GetData
它不起作用。所以我这样做了:
sys.path.append(".")
如果我这样做,我的代码就可以工作。但是,当我通过以下方式查看路径时,它看起来有点奇怪:
print(sys.path)
我明白了:
['C:\Main\Notebooks', '.']
我想我正在做的是获取当前工作目录并将该路径附加到更高一级。这行得通。这个对吗?有没有更优的方案?
您必须在 data
和 work
目录中添加一个空 __init__.py
文件。
主要
- 数据
++ __init__.py
++ get_data.py
- 工作
++ __init__.py
++ stuff.py
在那之后 from data.get_data import GetData
会起作用。
您可以尝试在文件开头添加如下语句:
import os,sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
将需要导入的模块路径添加到系统路径中
我已经有了这个问题的解决方案,但只是想确保它是最佳解决方案并按我的想法行事。我有这样的文件夹结构:
Main
+ data
++ __init__.py
++ get_data.py
+ work
++ stuff.py
get_data.py 有一个名为 GetData 的 class 我需要导入。我在 stuff.py。当我使用:
from data.get_data import GetData
它不起作用。所以我这样做了:
sys.path.append(".")
如果我这样做,我的代码就可以工作。但是,当我通过以下方式查看路径时,它看起来有点奇怪:
print(sys.path)
我明白了:
['C:\Main\Notebooks', '.']
我想我正在做的是获取当前工作目录并将该路径附加到更高一级。这行得通。这个对吗?有没有更优的方案?
您必须在 data
和 work
目录中添加一个空 __init__.py
文件。
主要
- 数据
++__init__.py
++ get_data.py - 工作
++__init__.py
++ stuff.py
在那之后 from data.get_data import GetData
会起作用。
您可以尝试在文件开头添加如下语句:
import os,sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
将需要导入的模块路径添加到系统路径中