【发布时间】:2016-04-15 14:20:11
【问题描述】:
我正在开发一个 Flask 扩展,我想在文件系统上的项目根路径中创建一个目录。
假设我们有这个目录结构
/project
/app
/tests
/my_folder
manage.py
my_folder 应该由扩展程序动态创建,扩展程序是一个测试实用程序,并将被测应用程序包装在 /tests 目录中。但是,我正在努力在我的扩展程序中确定项目的根路径。
目前,我正在尝试从运行文件中猜测路径:
def root_path(self):
# Infer the root path from the run file in the project root (e.g. manage.py)
fn = getattr(sys.modules['__main__'], '__file__')
root_path = os.path.abspath(os.path.dirname(fn))
return root_path
一旦从 IDE 而不是 manage.py 中运行测试,这显然会中断。我可以简单地推断出项目相对于应用程序或测试目录的根目录,但我不想对这些目录的名称或结构做出任何假设(因为多个应用程序可能作为子包托管在一个包中)。
我想知道是否有针对此类问题的最佳实践或 Flask 对象提供的未记录方法(例如 get_root_path)。
【问题讨论】: