virtualenv を使用して Python モジュールをクリーンアップするよう、いくつかの推奨事項を受け取りました。話がうますぎるので心配です。マルチコア設定、starcluster、numpy、scikit-learn、pandas、または iPython ノートブックを操作する際のパフォーマンスまたはメモリの問題に関連する欠点を見つけた人はいますか?
2 に答える
Virtualenv は、依存関係に関して何らかの順序を維持するための最良かつ最も簡単な方法です。モジュールのインストールと追跡に関しては、Python は本当に Ruby (バンドラー!) に遅れをとっています。最適なツールは virtualenv です。
そのため、アプリケーションごとに virtualenv ディレクトリを作成し、環境を構築するために必要なすべての「pip install」コマンドをリストしたファイルをまとめて、この環境を作成するためのクリーンで繰り返し可能なプロセスがあることを確認することをお勧めします。
アプリケーションの性質はほとんど変わらないと思います。virtualenv が行うことは、デフォルトでライブラリが保存されているディレクトリからライブラリをロードするのではなく、特定のパスからライブラリをロードすることだけであるため、パフォーマンスの問題は発生しません。
いずれにせよ (これはまったく無関係かもしれませんが)、パフォーマンスが問題になる場合は、おそらくコンパイル済み言語を検討する必要があります。ただし、ほとんどの場合、パフォーマンスのボトルネックはコーディングを改善することで改善できます。
virtualenv を使用してもパフォーマンスのオーバーヘッドはありません。ファイルシステム内の異なる場所を使用しているだけです。
唯一の「オーバーヘッド」は、セットアップにかかる時間です。各パッケージを virtualenv (numpy、pandas など) にインストールする必要があります。