我正在开发一个Bottle应用程序。 我的程序从配置(.cfg)文件中读取配置,也使用模板(.tpl)文件。
但是当我使用uWSGI在nginx上托管我的应用程序时,它无法找到文件(给定项目的相对路径)
可能的解决方案是什么?
答案 0 :(得分:4)
不使用相对路径,而是根据当前模块路径存储绝对路径:
MODULEPATH = os.path.dirname(__file__)
template = open(os.path.join(MODULEPATH, 'templates/sometemplate.tpl').read()
__file__
是当前模块的文件名,os.path.dirname(__file__)
是模块所在的目录。
你永远不应该依赖Python代码中的相对路径;运行python程序时不会更改当前工作目录。