如何在Python中获取项目的当前路径?

时间:2012-09-11 20:46:13

标签: python

有没有办法找出子文件夹中当前项目的路径?

如果我有例如:

/
    main.py
    /utils
        utilities.py
    /foo
        foo.py
        /foo/bar
           bar.py

/foo/foo.py/foo/bar/bar.py中进行编码时,我希望包含位于/utils/utilities.py的“实用程序”模块。如何通过调用项目的某种相对路径来执行此操作那么只需导入这个辅助模块吗?

我可以使用以下命令检索正在执行的文件的路径:

os.path.realpath(os.path.abspath(os.path.split(inspect.getfile( inspect.currentframe() ))[0]))

但我需要的是当前项目的相对或绝对路径。

提前致谢。

2 个答案:

答案 0 :(得分:3)

如果将项目设置为包,则无需担心路径,在这种情况下应该像将空__init__.py放入每个文件夹一样简单:

/src
    __init__.py
    main.py
    foo/
        __init__.py
        foo.py
        /bar
        __init__.py
        bar.py
    util/
        __init__.py
        utilities.py

现在,main.pyfoo.pybar.py可以通过简单的方式导入您的utilities模块:

from util import utilities

答案 1 :(得分:2)

我在这里提供了一个例子:

cmd_subfolder = os.path.realpath(os.path.abspath(os.path.join(os.path.split(inspect.getfile( inspect.currentframe() ))[0],"../../utils/")))