【发布时间】:2012-11-16 04:05:13
【问题描述】:
我正在开发一个 Bottle 应用程序。 我的程序从配置 (.cfg) 文件和模板 (.tpl) 文件中读取配置。
但是当我使用 uWSGI 在 nginx 上托管我的应用程序时,它找不到文件(给定项目的相对路径)
什么是可能的解决方案??
【问题讨论】:
我正在开发一个 Bottle 应用程序。 我的程序从配置 (.cfg) 文件和模板 (.tpl) 文件中读取配置。
但是当我使用 uWSGI 在 nginx 上托管我的应用程序时,它找不到文件(给定项目的相对路径)
什么是可能的解决方案??
【问题讨论】:
不使用相对路径,而是根据当前模块路径存储绝对路径:
MODULEPATH = os.path.dirname(__file__)
template = open(os.path.join(MODULEPATH, 'templates/sometemplate.tpl').read()
__file__是当前模块的文件名,os.path.dirname(__file__)是模块所在的目录。
你不应该依赖 Python 代码中的相对路径;运行python程序时当前工作目录不会改变。
【讨论】: