2017-05-04 4 views
0

私はWindows上でPythonアプリケーションを開発しています。ただし、このアプリケーションはLinuxシステムにデプロイされます。開発中にディレクトリの存在をシミュレートする

このアプリケーションの設定ファイルは/etc/myapp/configです。このパスはWindowsでは不可能です。

だから、私の質問は:Pythonで

  • 、シミュレートする方法は、(/etc/myapp/configなど)特定のディレクトリやファイルの存在、唯一の開発プロセス中に、ありますか?

ありがとうございます。

+1

質問に答えることはできませんが、迷惑メールボックスまたはドッカーコンテナを起動してトラブルを回避するのはなぜですか? – AJPennster

+0

私は今、それは瞬間に私の最後の選択です – Lobo

+1

あなたのアプリで任意のパスをハードコーディングすることを避けて、あなたは大丈夫でしょう。ヒント:環境変数やコマンドライン引数は、環境依存の値をharcodingすることを避けるための標準的な方法です/ –

答えて

1

存在しないパスを「シミュレート」するのではなく、アプリ内のパスをハードコーディングするのを避けても問題ありません。

ヒント:環境変数および/またはコマンドライン引数は、環境依存値のハーコードを避ける標準的な方法です。 os.environマッピングから環境変数を読み取ることができます。

あなたのアプリがいくつかのLinuxディストリビューションにデプロイされる予定の場合は、他の問題がないことを確認するために同じディストリビューションで本当にテストする必要があります。設定パスをハードコーディングする正当な理由ではありません(ネイティブのLinuxアプリでも変数やコマンドライン引数に依存しません)が、UNIXとWindowsの間にはかなりの違いがあります。

0

/\をstruglingする代わりに、os.path.join()を使用してください。
os.path.join(path, *paths)https://docs.python.org/2/library/os.path.htmlと読んでください)。

次に、あなたのコードに - 使用:

os.path.join('', 'etc', 'myapp', 'config') 

そして、それは(の* nix上)(Windowsの場合)C:\etc\myapp\config/etc/myapp/configの両方に働くだろう。

関連する問題