使用environ模块添加到系统的路径

时间:2016-12-21 15:03:53

标签: python environ

在设置文件中,我将系统路径附加到硬编码网址,如下所示:

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

我怎么能添加这条路径呢?难道不奇怪吗?

2 个答案:

答案 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]: