1

私はボトルアプリケーションを開発しています。私のプログラムは、構成 (.cfg) ファイルから、またテンプレート (.tpl) ファイルを使用して構成を読み取ります。

しかし、uWSGI を使用して nginx でアプリをホストすると、ファイルが見つかりません (プロジェクトへの相対パスが与えられます)。

可能な解決策は何ですか??

4

1 に答える 1

4

相対パスを使用する代わりに、現在のモジュールパスに基づいて絶対パスを保存します。

MODULEPATH = os.path.dirname(__file__)

template = open(os.path.join(MODULEPATH, 'templates/sometemplate.tpl').read()

__file__は現在のモジュールのファイル名、os.path.dirname(__file__)はモジュールが存在するディレクトリです。

Pythonコードの相対パスに依存しないでください。Pythonプログラムを実行しても、現在の作業ディレクトリは変更されません。

于 2012-11-28T10:27:49.017 に答える