在设置文件中,我将系统路径附加到硬编码网址,如下所示:
sys.path.append('/home/user/path/to/projectdir')
有效。
一旦我想使它相对,即使我使用environ模块检索确切路径,它也会失败。
import environ
ROOT_DIR = environ.Path(__file__) - 3
sys.path.append(ROOT_DIR.path())
令我难以置信的是,print(ROOT_DIR.path())
输出了project_dir的确切网址。
print(ROOT_DIR.path())
> '/home/user/path/to/projectdir'
这是我项目的树。
project_dir
└── soloscrap
└── soloscrap
├── settings.py
我怎么能添加这条路径呢?难道不奇怪吗?
答案 0 :(得分:0)
我认为environ
来得太晚了,路径已经修好了。所以解决方案似乎是这样的:
SYSPATH = os.path.dirname(
os.path.dirname(
os.path.dirname(
os.path.abspath(__file__)
)
)
)
sys.path.append(SYSPATH)
哪个不优雅。
答案 1 :(得分:0)
如果你想获得相对路径怎么样:
os.path.join("..", "..", __file__)
(由于终端略有不同)
In [1]: import os
In [3]: os.getcwd()
Out[3]: 'c:\\Temp\\foo\\bar'
In [4]: os.path.abspath(os.path.join('..','..',__name__))
Out[4]: 'c:\\Temp\\__main__'
In [5]: