web-dev-qa-db-ja.com

Python Django

私は現在、Webプログラミングの初心者です。私は最近このDjangoプロジェクトに取り組んでいて、仮想環境について読んでいます。プロジェクトの開始時に、仮想環境をセットアップできなかったので、私はそれなしでプロジェクトを進めました。私の質問は

この仮想環境が本当に必要かどうか?

将来、さらにDjangoプロジェクトを作成したい場合、プロジェクトを区別するためにこの仮想環境が必要になりますか?現在、メインCからコマンドプロンプトですべてのコマンドを実行しているためです。ディレクトリ?

この仮想環境は複数のプロジェクトを区別しますか、それともコード化されたDjango/Pythonのバージョン、またはその両方に関して各プロジェクトを分離しますか?現在、メインのC:driveディレクトリにpython manage.py runserver(仮想環境なし)などのコマンドを入力しているので、疑問に思っています。つまり、それぞれに仮想環境がないと、一度に複数のプロジェクトを実行できないということですか?仮想環境なしで複数のプロジェクトに取り組むことはできますか? (私はこれについて特に混乱しています)

次のプロジェクト用に仮想環境をセットアップする必要がありますか、それとも現在のプロジェクト用にセットアップできますか(プロジェクトの途中で、モデル、ビュー、テンプレートなどを作成しました)。

私の混乱を明確にするための答えは大歓迎です!

6
Steve D.

さて、これは初心者の間で最も一般的な質問の1つです。私自身、この質問に直面し、仮想環境を気にせずに複数のプロジェクトを構築しました。

しかし、最近、仮想環境を使用することの重要性に気づきました。仮想環境を使用する利点のいくつかは次のとおりです。

  1. 依存関係管理:複数のプロジェクトの依存関係間の競合を防ぎます。
  2. インストールのしやすさそして異なるマシンに新しいプロジェクトをセットアップする:依存関係をrequirements.txtファイルに保存し、pip install -r requirements.txtを実行して依存関係を好きな場所にインストールします。
6
Pulkit Pahwa

仮想環境がない場合、すべてのプロジェクトは同じインストール済みパッケージを使用します。

完了時にプロジェクトをサーバーに移動する場合、このプロジェクトに必要なパッケージがわからないため、それらのパッケージもすべてそこにインストールするしかありません。それはすぐに長いリストになり、パッケージの多くはその特定のプロジェクトには必要ありません。

仮想環境を使用する場合、プロジェクトごとに一連のパッケージがインストールされており、それらが混在することはありません。はるかに良い。

これで仮想環境の使用を開始できます。プロジェクトディレクトリで、次の手順を実行します。

pip install virtualenv  

これで、virtualenvコマンドができました(すべてのプロジェクト用)。

virtualenv env

これで、プロジェクトディレクトリにこのプロジェクトのvirtualenvを含むディレクトリ「env」ができました。

env\Scripts\activate

これで、このvirtualenvを使用しています(プロンプトはそれを反映するように変更されました)。

pip install Django

Djangoこのプロジェクトのみにインストールします。

pip freeze

現在このプロジェクト専用にインストールされているパッケージを表示します。

pip freeze > requirements.txt

インストールが必要なパッケージを記憶するために使用できるrequirements.txtを作成し、

pip install -r requirements.txt

それはそれらをインストールします。そして、それは多かれ少なかれあなたが必要とするすべてです。

12
RemcoGerlich

Javaでは、使用されるすべてのライブラリをwarファイルまたはjarファイルにパックできます。利点は、OSの環境について心配する必要がないことです。

Pythonは純粋な動的言語です。仮想環境がない場合、すべてのpython libsをシステムパスにインストールし、すべてのpythonプロジェクト間で共有する必要があります。

Django 1.10プロジェクトを開発していると想像してください。デモプロジェクトが見つかりました。それを自分のマシンで実行したいと思います。しかし、それはDjango 1.8。同じマシンに同じライブラリの2つのバージョンをインストールできないため、スタックします。

仮想環境はこのような問題を解決します。

しかしもちろん、仮想環境は完璧ではありません。 libmysqldに依存するmysql-pythonのようなpython libsがあります。これらのlibsがプロジェクトで使用されている場合、OSの設定と完全に独立することはできません。ベストプラクティスは使用することです。 dockerと組み合わせた仮想マシンIDE pycharmのようにdockerを介したリモート実行をサポート

3
bresai

仮想環境は、コンピュータ上にpythonとパッケージの仮想インストールを作成します。たとえば、Webアプリケーションがある場合。時間の経過とともにパッケージが更新され、変更が加えられると、互換性が失われることがあります。 WebアプリケーションまたはWebプロジェクトは依存する可能性があるため、パッケージ更新の新機能をテストしたいが、Webアプリケーションを壊したくない場合は、どうしますか。結局のところ、Webを停止するだけでは不十分です。パッケージが更新されるたびにサイトにアクセスします。そこで仮想環境が登場します。新しいバージョンのパッケージを含む仮想環境、または古いバージョンのパッケージの仮想環境を作成できますが、幸いなことにAnacondaではこれが非常に簡単です。 us。(仮想ハンドラーはすでにAnacondaに含まれています。)

0
Shulav karki

まず、仮想ラッパーを作成します

pip install virtualenvラッパー-win

ラッパー環境を作成した後、仮想環境を作成します。

mkvirtualenv envname

(コマンドは64ビットのPythonのみを実行します)そして、仮想環境を開始したい場合は、コマンドプロンプトを使用して職場(ディレクトリ)を設定し、コマンドを記述します

workon envname

0
Ravendra Kumar

プロジェクトのPythonパッケージの依存関係を管理するには、Python仮想環境が必要です。そのため、たとえば、別のプロジェクトにインストールする場合、常に正しいバージョンのパッケージがあります。マシン。Python仮想環境はpip(パッケージの場合)およびvirtualenv(仮想環境の場合)で管理できます、OR = with conda(両方を実行します)。

詳細については、次の記事を参照してください: " Python環境が必要な理由とCondaでそれらを管理する方法 "。

0
krubo