有没有办法找出子文件夹中当前项目的路径?
如果我有例如:
/
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]))
但我需要的是当前项目的相对或绝对路径。
提前致谢。
答案 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.py
,foo.py
和bar.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/")))