ensurepip dinonaktifkan di Debian / Ubuntu untuk sistem python

10

Saya mencoba membuat lingkungan virtual untuk pengembangan aplikasi Django saya. Komando yang saya gunakan:

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']

Seperti yang Anda lihat, saya mencoba membuat myvenv, yang tidak dapat dibuat karena python3-venv hilang. Saya sudah menginstal ini, tetapi pip memastikan tidak ada. Setelah mencari, tampaknya sistem (Ubuntu 16.04) tidak mendukung penggunaan paket. Bisakah seseorang membantu saya mengatasi masalah ini?

Anna Jeanine
sumber
Perintah aktual yang gagal adalah /var/www/djangogirls/myvenv/bin/python3 -Im ensurepip ..., yang mungkin gagal karena alasan yang sama sekali berbeda.
muru

Jawaban:

14

Ada laporan bug terkait di sini

komponen ensurepip tidak ada / dinonaktifkan di Ubuntu

Cara mengatasinya adalah dengan menciptakan lingkungan virtual tanpa pip

python3 -m venv myvenv --without-pip

komponen ensurepip tidak dipanggil dan lingkungan baru dibuat dalam kasus ini.

Namun kehilangan pip di lingkungan virtual bisa menjadi masalah.

Salah satu solusinya adalah menginstal paket sistem pip3 dan menggunakan modul sistem pip di dalam lingkungan virtual Anda secara langsung.

Lingkungan virtual harus memiliki akses ke paket situs sistem untuk dapat menggunakan modul pip sistem.

  1. instal paket sistem python3 pip

    sudo apt-get install python3-pip
  2. buat lingkungan virtual tanpa pip dan dengan akses ke paket situs sistem

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

Anda dapat menggunakan modul pip sistem untuk menginstal paket python ke lingkungan virtual Anda sekarang.

Alih-alih pip install DjangoAnda harus menggunakan eksplisit

myvenv/bin/python3 -m pip install Django

atau Anda dapat mengaktifkan lingkungan virtual Anda terlebih dahulu

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

python3 -m pip --version mungkin berguna untuk melihat lingkungan python yang digunakan.

Berdasarkan solusi yang ditemukan di sini , tetapi jangan gunakan yang diusulkan python get-pip.pydalam lingkungan virtual, karena itu akan mencuri pipperintah sistem

mojeto
sumber
Bug Debian untuk masalah ini ada di sini: bugs.debian.org/cgi-bin/bugreport.cgi?bug=901601
nnyby
1

Anaconda tidak terlibat

Jika Anda menggunakan Anaconda atau Conda , solusi ini dapat membantu Anda:

Conda mengelola python sendiri sebagai sebuah paket , sehingga conda update python dimungkinkan, berbeda dengan pip, yang hanya mengelola paket Python. Conda tersedia di Anaconda dan Miniconda (unduhan yang mudah dipasang hanya dengan Python dan conda).

sangat mengganggu bagi saya tetapi, tangan ke keyboard di jendela terminal:

conda update python

Lihat gambar ini hasilnya , mungkin ini membantu Anda, semoga harimu menyenangkan!

Jimmy Olano
sumber