1
我正在开发一个Bottle应用程序。 我的程序从配置(.cfg)文件读取配置,也使用模板(.tpl)文件。为什么我们需要在Bottle + uWSGI中指定绝对路径?
但是,当我的主机上使用uWSGI nginx的我的应用程序,它无法找到文件(给出相对路径工程)
什么是可能的解决方案?
我正在开发一个Bottle应用程序。 我的程序从配置(.cfg)文件读取配置,也使用模板(.tpl)文件。为什么我们需要在Bottle + uWSGI中指定绝对路径?
但是,当我的主机上使用uWSGI nginx的我的应用程序,它无法找到文件(给出相对路径工程)
什么是可能的解决方案?
代替使用相对路径的,存储绝对路径基于当前模块路径上:
MODULEPATH = os.path.dirname(__file__)
template = open(os.path.join(MODULEPATH, 'templates/sometemplate.tpl').read()
__file__
是当前模块的文件名,os.path.dirname(__file__)
是模块驻留在目录
你不应该依赖Python代码中的相对路径;运行python程序时,当前的工作目录不会改变。