私はボトルアプリケーションを開発しています。私のプログラムは、構成 (.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プログラムを実行しても、現在の作業ディレクトリは変更されません。