1

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

例如,如果我有类似的东西:

/
    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]))

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

提前致谢。

4

2 回答 2

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.py可以通过一个简单的bar.py方式导入你的utilities模块:

from util import utilities
于 2012-09-12T04:30:41.680 回答
2

我使用此处提供的示例进行了此操作:

cmd_subfolder = os.path.realpath(os.path.abspath(os.path.join(os.path.split(inspect.getfile( inspect.currentframe() ))[0],"../../utils/")))
于 2012-09-12T00:00:44.697 回答