システムpythonのDebian / Ubuntuでは、pipipsが無効になっている


10

Djangoアプリケーションを開発するための仮想環境を作成しようとしています。私が使っているコマンドー:

vagrant@vagrant:/var/www/djangogirls$ python3 -m venv myvenv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/var/www/djangogirls/myvenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']


vagrant@vagrant:/var/www/djangogirls$ sudo apt-get install python3-venv
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python3-venv is already the newest version (3.5.1-3).
The following packages were automatically installed and are no longer required:
  javascript-common libjs-jquery libjs-sphinxdoc libjs-underscore python-pbr python-pkg-resources
  python-six python-stevedore python3-virtualenv virtualenv virtualenv-clone
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 108 not upgraded.

vagrant@vagrant:/var/www/djangogirls$ python3 -m ensurepip
ensurepip is disabled in Debian/Ubuntu for the system python.

Python modules for the system python are usually handled by dpkg and apt-get.

    apt-get install python-<module name>

Install the python-pip package to use pip itself.  Using pip together
with the system python might have unexpected results for any system installed
module, so use it on your own risk, or make sure to only use it in virtual
environments.


vagrant@vagrant:/var/www/djangogirls$ rm -r myvenv/ 

vagrant@vagrant:/var/www/djangogirls$ python3 -m venv myvenv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/var/www/djangogirls/myvenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']

ご覧のように、python3-venvがないために作成できないmyvenvを作成しようとしています。これはすでにインストールしていますが、pipが欠落していることを確認してください。検索後、システム(Ubuntu 16.04)はパッケージの使用を推奨しないようです。誰かがこの問題を回避するのを手伝ってくれませんか?


失敗する実際のコマンドはです/var/www/djangogirls/myvenv/bin/python3 -Im ensurepip ...。これは、まったく異なる理由で失敗する可能性があります。
muru

回答:


14

ここに関連するバグレポートがあります

UbuntuでEnsurepipコンポーネントが見つからない/無効になっている

それを回避する方法は、pipなしで仮想環境を作成することです

python3 -m venv myvenv --without-pip

Ensurepipコンポーネントは呼び出されず、この場合、新しい環境が作成されます。

ただし、仮想環境でpipが欠落していることが問題になる場合があります。

1つの解決策は、システムpip3パッケージをインストールし、仮想環境内で直接システムpipモジュールを使用することです。

システム環境のpipモジュールを使用するには、仮想環境がシステムサイトパッケージにアクセスできる必要があります。

  1. システムpython3 pipパッケージをインストールする

    sudo apt-get install python3-pip
  2. ピップなしでシステムサイトパッケージにアクセスできる仮想環境を作成する

    python3 -m venv myvenv --without-pip --system-site-packages

システムpipモジュールを使用して、Pythonパッケージを仮想環境にインストールできます。

代わりにpip install Django明示的に使用する必要があります

myvenv/bin/python3 -m pip install Django

または、最初に仮想環境をアクティブ化できます

source myvenv/bin/activate
python3 -m pip install Django

python3 -m pip --version 使用されているpython環境を確認するのに便利です。

ここで見つかったソリューションに基づいていますがpython get-pip.py、システムpipコマンドを盗むため、仮想環境で提案されたものを使用しないでください。


この問題のDebianバグは次のとおり
bug=

1

アナコンダインボリュクレド

Anaconda または Conda を使用している場合、このソリューションが役立つことがあります。

Python自体をパッケージとして管理する Condaは、Pythonパッケージのみを管理するpipとは対照的に、conda update pythonが可能です。Condaは、AnacondaとMiniconda(Pythonとcondaだけで簡単にインストールできるダウンロード)で入手できます。

私にとっては非常に不安ですが、ターミナルウィンドウのキーボードに手を触れます。

conda update python

この写真を見て、おそらくこれはあなたを助ける、良い一日を!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.