tl;dr:新しい仮想環境を作成するたびに、pipバージョンが10.0.1にリセットされ、グローバル18.0インストールで自動的に複製されないのはなぜですか?
新しい仮想環境を作成するたびに、環境が古くなっpip
たというメッセージが表示されます。私は走る
$ pip install --upgrade pip
次の出力を取得します。
Collecting pip
Using cached https://files.pythonhosted.org/packages/5f/25/e52d3f31441505a5f3af41213346e5b6c221c9e086a166f3703d2ddaf940/pip-18.0-py2.py3-none-any.whl
Installing collected packages: pip
Found existing installation: pip 10.0.1
Uninstalling pip-10.0.1:
Successfully uninstalled pip-10.0.1
Successfully installed pip-18.0
pip -V
仮想環境の外部で実行すると返されます。
pip 18.0 from /usr/lib/python3.7/site-packages/pip (python 3.7)
したがって、新しい仮想環境を作成するときにのみ古いバージョンが作成されます。
これはPython仮想環境モジュールの機能ですか?
レコード上に新しい仮想環境を作成するために実行するコマンドは次のとおりです。
$ python -m venv <venv>
実行してインストールしました。
$ pacman -S python python-pip
Archで実行しましたが、出力python -V
はPython 3.7.0
。
答え1
pip
新しい仮想環境の作成時にリセットされません。新しい仮想環境を作成する場合は、venv
この環境で新しいインストールを実行してください。バージョンはどこから出ますか?実行時のインストールはモジュールの責任です。pip
setuptools
pip
python -m venv
pip
ensurepip
新しいインストールが起動しますpip
。pip
Python 3.7にバンドルされているバージョンを確認できます。
$ python3 -c "import ensurepip; print(ensurepip.version())"
10.0.1
モジュールは標準ライブラリの一部であるため、このコンテンツを直接更新または変更することはできません。 Python 3.7がリリースされたとき、最新pip
バージョンは10.0.1だったので、バンドルされています(関連質問)。バージョン18は後でリリースされる予定です。次に、次のPythonバージョン(3.7.1)にアップデートできます。
代替案:使用virtualenv
pip
新しい仮想環境に最新バージョンをインストールするには、次のように切り替えますvirtualenv
。
$ pip install --user virtualenv
または、次のコマンドを使用してシステム全体にインストールしますpacman
。
$ pacman -S python-virtualenv
virtualenv
Pythonよりも頻繁に更新されるため、最新バージョンは最新のパッケージをインストールします。使用例:
$ virtualenv myenv --python=python3 --quiet
$ source myenv/bin/activate
(myenv) $ pip --version
pip 18.0 from /Users/hoefling/.virtualenvs/myenv/lib/python3.7/site-packages/pip (python 3.7)