2017-05-29 2 views
0

これは私の問題です、私はセットアップ中にデータファイルをコピーするアプリケーションを作ろうとしています。私がpipをインストールするとき、セットアップはいくつかのファイルをディレクトリにコピーします。

私の質問は、バーチャル環境の中で、顧客が期待している動作は何ですか?彼は各virtualenvの仮想環境ディレクトリ内に作成されたすべてのデータファイルを必要としますか、仮想環境ディレクトリ。

アプリケーションの実行中に、これらのコピーされたファイルに沿って作成され、保存される新しいファイルがあります。 Pythonのvirtualenvから期待される理想的な動作は何ですか?一般的なまたは分離された?virtualenv pythonで期待される動作は何ですか?

+0

仮想環境は、通常、外に出ないサンドボックス環境として解釈されます。 – poke

答えて

0

virtualenvは開発用であり、展開用ではありません。 Pythonアプリケーションを導入するシナリオはたくさんあります。 virtualenvは実際の分離ではないので、virtualenvの使用を好み、共通のファイルを持っていればどこでもかまいません。Pythonパスのmangling/modificationメカニズム(chrootのようなものではありません)だけですので、 、/usr/share/my-app-1.0/datafiles/です。また、virtualenvはバイナリ/スクリプトを隔離するために使用されますが、データファイルが静的であれば、好きなときに配置することができます。

0

私の意見では、作成するアプリケーションによって異なります。 Virtualenvは、同じマシン上で異なる依存関係を持つ複数のアプリケーションを実行する方法です。アプリケーションからのデータは別のものです。

私はWebアプリケーションを書くと、それはサーバー上の単一のアプリケーションになります。そして、私は1つのディレクトリを使用します。

一方、私はGUIアプリケーションを書くと、物事は異なる。データがすべてのバージョンで変更する必要があるものの、エンドユーザーが直接(例えば辞書や翻訳などの一部)それに触れない場合は、アプリケーションパッケージに沿ってdistパッケージに入れます(package data in setup.py参照)。 一方、ユーザーが「タッチ」してそれらのファイルを使用できる場合、それらをユーザーのホームディレクトリに入れます。 How to find the real user home directory using python?

+0

私には2つのオプションがあり、virtualenvディレクトリ内にデータファイルを作成するか、共通のユーザーホームディレクトリにデータファイルを作成します。ユーザーは必要に応じて古いファイルを完全に追加してカスタマイズできます。このシナリオでは、複数のユーザーが、すべてのデータファイルを1つのディレクトリに保存することをお勧めしますか? –

関連する問題