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

问题描述:

有没有办法找出一个子文件夹中当前项目的路径?如何在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])) 

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

在此先感谢。

+4

您是否熟悉[内部软件包引用](http://docs.python.org/tutorial/modules.html#intra-package-references)? –

+0

可能重复;看一看:http://*.com/a/6098238/1107807 –

+0

我得到这个在这里提供了一个示例工作: cmd_subfolder = os.path.realpath(os.path.abspath则(os.path.join( os.path.split(inspect.getfile(inspect.currentframe()))[0],“../../ utils /”))) –

,如果你设置你的项目了作为一个整体,在这种情况下应该是那样简单你并不需要担心的路径把一个空__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 

我用一个例子在这里工作提供:

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