- グローバル サイト パッケージとローカル サイト パッケージの両方に特定のパッケージをインストールした場合、どのパッケージがインポートされますか? それは機能しますか、それともエラーが発生しますか?
- どのパッケージをグローバル サイト パッケージに配置し、どのパッケージをローカル サイト パッケージに配置する必要がありますか?
2 に答える
前の回答は質問 1 をまとめていますが、質問 2 は無視しています。
どのパッケージをグローバルに配置するかについて、私が見た一般的なベストプラクティスは次のとおりです。
まず、主要なバージョンをアップグレードしない限り、これらは下位互換性の問題で変更されないため、コア Python パッケージです。Python アップグレードからのセキュリティ修正が自動的に virtualenvs に適用されるようにする必要があります。
第 2 に、個々の virtualenv に easy_install や pip をインストールするのが面倒だが、それほど頻繁には変更されないパッケージ (MySQLdb/psycopg や PIL など)。
他のほとんどすべてのものは、virtualenv のパッケージに入れる必要があります ( pip要件ファイルとvirtualenvwrapperを使用して、他のマシンでのセットアップを最小限に抑え、簡単にすることを強くお勧めします)。
--no-site-packages で作成されていない限り、新しく作成された仮想環境はデフォルトでグローバルな site-packages ディレクトリにアクセスできます。特定の環境を有効にして easy_install (新しいパッケージのインストール) を呼び出すと、グローバル サイト パッケージ内の既存の環境がローカルで上書きされます (継承と同様)。環境は、見つからない場合は独自のローカル パッケージ (グローバル パッケージ) を使用します。