私は権限エラーを取得していますし、私はなぜわからないんだけど、このコマンドでvirtualenvとは何ですか、なぜそれを使うべきですか?
pip install <name of package>
をPythonパッケージをインストールしようとしています。私はsudo
でそれを動かすことができましたが、誰かがそれは悪い考えであると私に言いました。代わりにvirtualenvを使うべきです。
virtualenvとは何ですか?それは私のために何をするのですか?
私は権限エラーを取得していますし、私はなぜわからないんだけど、このコマンドでvirtualenvとは何ですか、なぜそれを使うべきですか?
pip install <name of package>
をPythonパッケージをインストールしようとしています。私はsudo
でそれを動かすことができましたが、誰かがそれは悪い考えであると私に言いました。代わりにvirtualenvを使うべきです。
virtualenvとは何ですか?それは私のために何をするのですか?
virtualenvは、軽量で独立したPythonインストールです。彼らは広範な構成や専門知識を必要とすることなく、最小限の騒ぎでセットアップされるように設計されています。
のPython 3.3ではまたは次のように後で、あなたはvirtualenvのを作成することができます。Windowsの場合
$ python3 -m venv ENV_DIR
を、あなたはpython.exeするフルパスでpython3
を交換する必要があります。
>C:\Python34\python.exe -m venv ENV_DIR
(この典型的なPythonインストールです;あなたのシステムは異なるかもしれません)。
Python 2を含む古いバージョンのPythonでは、次のコマンドのうちのどれかがca ses:
$ virtualenv ENV_DIR
$ venv ENV_DIR
$ pyvenv ENV_DIR
$ pyvenv3 ENV_DIR
ENV_DIR
は、存在しないディレクトリである必要があります。ディレクトリには任意の名前を付けることができますが、これらの手順を簡単にするために、venv
というディレクトリ(たとえば、)にvirtualenvを作成したものとします。
あなたのvirtualenvの中で作業するには、あなたはそれをアクティブ化:
$ . ./venv/bin/activate
(venv)$
それとも、Windowsのシステムを持っている場合は、これを使用します。
$ venv\Scripts\activate
シェルプロンプトで(venv)
はあなたをvirtualenvのかを知ることができます有効にしていますが、好きではない場合はこの機能をオフにすることができます。あなたはすべての通常のPythonコマンドを実行することができ、彼らはあなたのvirtualenvのにローカルになります。
(venv)$ pip install requests numpy
[...]
(venv)$ python
[...]
>>> import requests
>>> import numpy as np
>>>
python
はあなたのvirtualenvのにインストールされていることのPythonのバージョンを実行しますので、(例えば)あなたがする必要はありませんpython3
と入力すると、Python 3が実行されます。実行されるPythonは、すべての標準ライブラリモジュールと、virtualenvにインストールされたすべてのパッケージにアクセスできます(デフォルトでは、システム全体のsite-packages
ディレクトリにインストールされていません)。
virtualenvをローカルでインストールされたパッケージのみを使用するように制限することで、新しいシステム全体のパッケージが来週にインストールまたは更新されても、プロジェクトが使用している依存関係を正確に制御できるようになります。あなたが好きなら、あなたはインストール済みのパッケージの一覧を取得することができます。
(venv)$ pip freeze
requests==2.13.0
numpy==1.12.0
(venv)$
pip
も更新がその間にリリースされている場合でも、このフォーマットを解析し、そこからインストールし、それが同じバージョンをインストールしますことができます。
(venv)$ deactivate
$ python
[...]
>>> import requests
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'requests'
あなたが好きなようにあなたができるだけ多くvirtualenvsを作成することができ、そして、彼らはint型ではないでしょう:あなたはそれを不活性化することにより、virtualenvのから抜け出すことができ
(venv)$ pip freeze >requirements.txt
(some-other-venv)$ pip install -r requirements.txt
[...]
(some-other-venv)$ python
>>> import requests
>>> import numpy as np
>>>
お互いに邪魔したり、あなたのシステムパッケージで迷ったりします。 virtualenvはバイナリとその下のスクリプトの束を持つディレクトリの「ちょうど」なので、ディレクトリを削除するのと同じ方法でvirtualenvを削除することができます(Unixではrm -r venv
)。あなたがそれを削除するときにvirtualenvが起動されている場合は、あなたのシェルを混乱させる可能性があるので、その場合はおそらく最初にdeactivate
にすることをお勧めします。
あなたはroot権限を与えられていない場合があり、sudoを使用できなくなることがあります。他の多くのアプリケーションでは使用されているかもしれないパッケージを上書きする可能性があるので、パッケージをインストールするのにsudoを使用することはお勧めできません。
Virtualenvは、root特権を必要とせず、必要に応じて環境を調整できる別の環境を作成するのに役立ちます。それはあなたの特定の作成された環境とだけ相互作用する自己完結型のPythonインストールから成っています。
基本的に、これは、古いアプリケーションの多くの古い機能をホストしている可能性のあるルート環境を傷つける(または変更する)のを避けるだけでなく、少し自由を与えます。
インストールも非常に簡単です。
この記事を読む:http://flask.pocoo.org/docs/0.12/installation/#virtualenv –