2016-10-28 16 views
0

私の仮想環境にDjangoフレームワークをUbuntu 16.04 LTSでインストールしています。私の仮想環境のシステムサイトパッケージを継承するかどうかを決定する必要があります。 Djangoのインストールでは、システム全体のpython3パッケージの潜在的な競合がありますか?venvとsystem-site-packagesのDjangoインストール

答えて

1

システムサイトパッケージを使用している場合、グローバル環境とローカル環境が大きく異なる可能性がある別のマシンにアプリケーションを出荷すると、問題が発生する可能性があります。 Djangoだけでなく、すべてのPythonプロジェクトにクリーンな仮想環境を使用してください。

+0

種類ありがとうヘルプ – Scyber

0

はい、システム全体のパッケージが競合する可能性があります。ディストリパッケージは古くなったり、LTSリリースに従ったりしていますが、同じパッケージをローカル環境にインストールするとエラーが発生することがあります(以前はディジプロパッケージにインストールされたDjangoに問題があり、環境を引き起こし、問題を引き起こす)。

私がPythonで開発する際に従う傾向のあるルールは、Pythonをディストリビューションにインストールするだけです。次に、それぞれのpythonプロジェクトに対して、仮想環境を使用します。こうすることで、プロジェクトを作成する際に問題が発生することはありません。

+0

ありがとうございました – Scyber

0

As I've written elsewhere、「多くの人々は、よく、分離することが彼らの独立した環境を好むので、彼らは[--system-site-packages]を使用していないが、私はパッケージをコンパイルしないようにするために、多くの場合、それを使用する。pip install gdalがあるため時間がかかることがありますapt-get install python-gdalは高速ですので、システム全体のgdalを使用できるようにするために--system-site-packagesを使用しています(この問題は、ほとんどのPythonパッケージがPythonホイールとしてコンパイルされて配布されるようになって以来重要ではありません)。さらに、psycopg2はコンパイルするのが難しいかもしれませんが、通常はオペレーティングシステムのバージョンを使用する方が良いでしょう。通常はオペレーティングシステムのpostgresqlで動作することが保証されていますが、Windowsの場合は通常--system-site-packagesを使用しません。オペレーティングシステムと一緒にパッケージ化されたサイトパッケージ "

私は紛争も他の問題も一度もありませんでした。オペレーティングシステムは古いパッケージを持つことがよくありますが、これは問題ではありません。オペレーティングシステムにパンダ0.17があり、Djangoプロジェクトに0.19が必要な場合は、pip install -r requirements.txtと入力すると0.19がインストールされ、オペレーティングシステムのパッケージが上書きされます。

システム全体でpipを実行することはありません。私は常にvirtualenvでそれを実行します。私のシステム全体でのインストールには、apt-getがインストールされたパッケージしかありません。

関連する問題