pyvenv tidak berfungsi karena ensurepip tidak tersedia

93

Saya memutakhirkan dari ubuntu 14.04 ke ubuntu 16.04 beberapa hari yang lalu. Ketika saya mencoba membuat virtual env dengan menggunakan

pyvenv .venv

atau

python3 -m venv .venv

Terjadi kesalahan:

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: ['/usr/bin/python3.5', '-Im', 'ensurepip', '--upgrade', '--default-pip']

Saya mencoba menjalankan keduanya

sudo apt-get install python3-venv

dan

sudo apt-get install python3.5-venv

tetapi itu tidak menyelesaikan masalah saya.

Louis M
sumber
Masalah saya diselesaikan pada OS dengan info rilis: ID Distributor: LinuxMint Keterangan: Linux Mint 18.3 Sylvia Rilis: 18.3
nix
tidak ada jawaban yang memecahkannya untuk saya. masih terjebak pada kesalahan yang sama
Shoaib Iqbal

Jawaban:

119

Sepertinya itu masalah lokal. Dipecahkan dengan menjalankan:

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

ditemukan di utas ini Kesalahan lokal Python: pengaturan lokal tidak didukung

Louis M
sumber
37
Ini gila tapi itu benar
pengguna1703761
8
Penasaran banget, tapi ada yang tahu apa alasannya?
Juan Antonio
tidak bekerja untuk saya di OS dengan info distro: ID Distributor: LinuxMint Keterangan: Linux Mint 18.3 Sylvia Rilis: 18.3
nix
1
Terima kasih, menjalankan penyiapan buruh pelabuhan minimal di sini. Saya tidak pernah menduga.
Antti Haapala
1
@JuanAntonio Tampaknya Ubuntu (setidaknya 16.04) adalah bistro non-unicode di luar kotak, seperti yang disebutkan dalam masalah ini: ticket.puppetlabs.com/browse/IMAGES-498 Tebak kita harus menambahkan pengaturan lokal ke bootstrap server kita .. .
Andreas Bergström
115

coba pasang python3.6-venv:

sudo apt-get install python3.6-venv
jnicho02
sumber
1
Terima kasih atas solusinya. Ini bekerja pada 16.04 (mengingat python3.6 sudah diinstal tentu saja). Apa yang saya TIDAK mengerti adalah bahwa: 1. venv harus secara tepat membuat penggunaan apt-get tidak diperlukan. Itu bagian dari perpustakaan standar. 2. mengapa versi default pip yang menggunakan venv bukan versi terbaru?
Lionel Trebuchon
30
... atau sudo apt-get install python3.7-venvjika Anda menggunakan python 3.7
Alleo
13
... atau sudo apt-get install python3.8-venvjika Anda menggunakan python 3.8
cowlinator
3
... atau sudo apt-get install python3.9-venvjika Anda menggunakan python 3.9 (untuk masa depan)
Andrey Semakin
12
... atau sudo apt-get install python3.10-venvjika Anda menggunakan python 3.10 (seandainya kita bertahan tahun 2020)
Steven667
45

Salah satu jawaban lain memperbaikinya untuk saya terakhir kali, tetapi dengan Python 3.7 saya harus melakukan:

apt install python3-pip python3-setuptools python3.7-venv

Diikuti oleh

python3.7 -m venv /path/to/venv
Aaron F
sumber
berfungsi untuk Ubuntu 18.04
iwtu
23

Di bawah Subsistem Linux Windows dan Ubuntu 18.04, ini disebabkan oleh saya tidak mengupgrade baru-baru ini.

Saya berlari:

sudo apt update
sudo apt upgrade

Kemudian sudo apt install python3-venv bekerja.

Perhatikan bahwa saya juga telah mencoba solusi UTF-8 sebelumnya (saya menjadikannya bagian dari solusi saya .bashrc), jadi itu bisa menjadi faktor penyebab.

Eponim
sumber
4
Saya rasa solusi UTF-8 tidak penting. Saya juga di WSL Ubuntu 18.04 dan langkah-langkah sudo apt updatedan sudo apt install python3-venvyang cukup.
Theja
1
Ini adalah satu-satunya solusi yang berhasil untuk saya! Saya mencoba mengubah lokal dan menginstal versi Python yang lebih baru tetapi tidak berhasil
arctic.queenolina
2
ini bekerja untuk saya juga, saya mencoba beberapa opsi lain .. tidak berhasil,
Pelajar
10

Dalam kasus saya, langkah-langkah selanjutnya berhasil:

  • Ubuntu 18.04.4 LTS
 $ sudo apt-get install python3-venv python3.7-venv
 $ python3.7 -m venv [your_path_to_virtual_env_here]
Eduardo RE
sumber
9

Jika ini membantu siapa pun di telepon, saya mendapatkan kesalahan yang sama di Ubuntu 18.04. Pengaturan lokal tidak berfungsi dan mencoba menginstal python3-venvmemberikan kesalahan:

$ sudo apt-get install python3-venv
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 python3-venv : Depends: python3.6-venv (>= 3.6.5-2~) but it is not going to be installed
                Depends: python3 (= 3.6.5-3) but 3.6.7-1~18.04 is to be installed
E: Unable to correct problems, you have held broken packages.

Dan sepertinya repositori apt memiliki dua versi python:

$ apt list python3 -a
python3/bionic-updates,now 3.6.7-1~18.04 amd64 [installed]
python3/bionic 3.6.5-3 amd64

Saya mencoba menginstal Python3.6.5-3tetapi apt ingin menghapus setiap ketergantungan. Saya dapat menyelesaikan masalah dengan menginstal Python3.7 dan membuat venv dengan itu:

$ sudo apt-get install python3.7 python3.7-venv
$ python3.7 -m venv my_venv
nbwoodward.dll
sumber
1
Ini berhasil untuk saya. Melakukan sudo apt install python3.8 python3.8-venvdan menciptakan lingkungan virtual menggunakan python3.8 -m venv venv_name. Terima kasih!
Amir A. Shabani
5

Saya mengalami masalah ini di Ubuntu 18.04 untuk rilis terbaru Python-3.8 . Solusi saya adalah menambahkan Deadsnakes PPA yang memasok python3.8-distutilspaket yang diperlukan . The python3.8-venvpaket sudah dalam repositori. Terima kasih untuk posting blog ini :

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8
sudo apt install python3.8-distutils
sudo apt install python3.8-venv

Catatan: Ini hanya solusi sementara. Dalam waktu dekat python3.8-distutilspaket yang dibutuhkan mungkin akan tersedia di repositori default Ubuntu.

Edit:

Untuk Ubuntu 20.04 LTS, python3-distutils paket didasarkan pada Python 3.8. Sampai saat ini belum ada paket distutils paket Python 3.8 yang tersedia untuk Ubuntu 18.04 LTS.

Seperti yang disebutkan dalam komentar lain di utas ini, distutilsmungkin tidak diperlukan. Itu untuk kasus penggunaan saya, tetapi harap pertimbangkan solusi itu sebelum menambahkan PPA tambahan.

Nico Rikken
sumber
1
sudo apt install python3.8-venvadalah pemenang bagi saya. Semua bantuan lain yang dapat saya temukan membuat saya mencoba menginstalnya python3-venv.
pengguna1717828
4

Mengatasi masalah serupa di Ubuntu18 ketika menemukan jawaban ini . Ini mirip dengan yang bekerja untuk @Niko Rikken, menerima tidak benar-benar membutuhkan PPA baru dan paket "python3.8-distutils". Saya menginstal lingkungan python3.8 baru dengan venv dan saya sudah menginstal "python3-venv" dan mutakhir, jadi solusi saya adalah menginstal hanya "python3.8-venv":

% sudo apt-get install python3.8-venv

Dan itu membuat baris ini berfungsi:

% python3.8 -m venv ~/envs/new_env
% source ~/envs/new_env/bin/activate
Rustam A.
sumber
3

Coba: python3.* -m venv myvenv -

Dan jangan lupa untuk mengganti * dengan python versi spesifik Anda

Nax
sumber
3

Saya dihadapkan pada masalah yang sama dan saya sedang mencari solusi. Ini tentang masalahnya:

ensurepip dinonaktifkan di Debian / Ubuntu untuk sistem python.

Dan ini solusi saya:

python3 -m venv myvenv --without-pip --system-site-packages
hichem
sumber
2
Perhatikan bahwa lingkungan python tanpa pipmungkin tidak berguna.
ankostis
3

Coba perintah berikut:

sudo apt install python-virtualenv
virtualenv --python=python3.6 myenv

Perintah ini mungkin berhasil untuk Anda.

Jika Anda mendapatkan kesalahan seperti E: Unable to locate package python3-venv Kemudian coba perintah berikut:

sudo apt install python3.6-venv
Yash
sumber
3

Python diperbarui atau Python default berubah dan venv sudah diinstal

venv yang diinstal pada sistem Anda diinstal oleh versi python sebelumnya (katakanlah python3.6). itulah mengapa venv tidak berfungsi dengan versi python saat ini (katakanlah 3.8).

jadi pertama-tama periksa versi python atau python3 default Anda, (misalkan versi Anda saat ini adalah python3.8).

instal ulang lingkungan virtual dengan menyebutkan versi python saat ini (3.8) sebagai berikut

sudo apt-get install python3.xx-venv        >> replace xx with your current/default python version

jika ini membantu Anda plz upvote, saya baru di platform ini.

RavinderSinghPB
sumber
2

Saya memiliki masalah yang sama - python env memiliki 2 versi untuk 2.7 dan 3.6.

Yang perlu Anda lakukan hanyalah:

  1. Instal pip versi terbaru dengan menginstal pemasang pyenv
  2. Pastikan Anda mengikuti langkah-langkah penginstalan pyenv yang ditemukan di sini

Semoga berhasil!

samiya umar
sumber
2

Jika niat Anda adalah untuk mendapatkan incl python3.8. pip dan venv di Ubuntu 18.04:

  • sudo apt install python3.8 python3.8-venv python3-pip # tidak ada paket python3.8-pip
  • python3.8 -m venv venv
  • source venv/bin/activate
  • python --version # -> python 3.8.0
  • pip --version # -> pip 9.0.1 dari /home/user/venv/lib/python3.8/site-packages (python 3.8)
gogo_gorilla
sumber
1

Saya memiliki masalah yang sama untuk proyek yang ada saat menjalankan python3 -m venv venv. Saya baru saja memperbarui versi Ubuntu dan Python saya. Setelah menghapus venvfolder yang sudah ada , masalah telah diselesaikan. (Saya juga mencoba solusi UTF-8 .)

Sparwer
sumber
1

Masalah saya terkait dengan izin dan kepemilikan. Saya masuk dengan pengguna lain sebagai pemilik direktori saat ini, yang menyebabkan kesalahan ini. Setelah meninjau dan memperbaiki semua izin, saya bisa menginstal venv regularl

DarwinsBuddy
sumber
Inilah masalah saya tepatnya. Ketika saya mengubah ke direktori home pengguna saat ini, perintah berjalan dengan baik. Ini pasti bug yang mengasumsikan python3-venv tidak diinstal ketika benar-benar mengenai masalah izin.
Cosmicnet
0

Semua saran ini tidak membantu saya.

$ apt list python3 -a
python3/now 3.6.7-1~18.04 amd64 [installed,local]
python3/bionic 3.6.5-3 amd64

Jadi saya melakukan: sudo apt-get install python3/bionic

Sekarang saya memiliki python 3.6.5 dan apt-list menunjukkan daftar yang lebih baik: $ apt list python3 -a python3 / bionic 3.6.5-3 amd64

Dengan sudo apt-get install python3-venv/bionicsaya bisa menginstal pythno3-venv dan semuanya bekerja.

Stefan
sumber
Saya menggunakan ubuntu sekitar 5 tahun secara aktif tetapi saya tidak pernah melihat sebelumnya sintaks "python3 / bionic": O jawaban Anda memecahkan masalah saya terima kasih.
kodmanyagha
Senang berhasil, saya juga tidak tahu sintaksnya, saya hanya mencoba karena "daftar tepat" menunjukkan paket seperti itu ;-) Jika jawaban itu membantu Anda, Anda mungkin menekan tombol "naik".
Stefan
Jika Anda dapat menggunakan nama paket yang tidak standar, itu berarti Anda memiliki sumber paket yang tidak standar yang dikonfigurasi. apt-cache policy python3/bionicdapat membantu Anda mengetahui dari mana paket ini berasal. Ini bukan dari Ubuntu.
tripleee
0

Dalam kasus saya, berjalan sudo apt-get install python3.8-venvberhasil tetapi itu menunjukkan kesalahan yang sama saat berjalanpython3 -m venv .venv .

Terakhir, perintah ini berfungsi tanpa mengubah lokal.

python3.8 -c 'import venv; venv.create(".venv", with_pip=True)'

Yuq Wang
sumber
0

Ini berhasil untukku ... Pertama, aku lari

sudo apt-get update

Kemudian

sudo apt-get install -y python3-venv zip

itslogique
sumber
0

Inilah jawaban saya untuk Ubuntu 14.04. Saya dapat membuat venv dan pip berfungsi dengan berbagai versi Python. Rincian:

  • 3.4: Ubuntu 14.04 memiliki Python 3.4 (sebagai paket python3.4 dll.). Berhasil:

    $ sudo apt-get install python3.4 python3.4-dev python3.4-venv gcc libc6-dev
    $ mkdir /tmp/try3.4
    $ python3.4 -m venv /tmp/try3.4
    $ . /tmp/try/bin/activate
    (try3.4) $ pip install print-hello-world
    ...
    (try3.4) $ print-hello-world
    Hello World!
    

    Jika python3.4-venvdihapus dari apt-get installperintah di atas, maka python3.4 -m venvakan muncul pesan error yang sama seperti pada pertanyaan. Namun, pesan kesalahan menyebutkan apt-get install python3-venvuntuk menyelesaikannya, tetapi itu tidak berhasil, tidak ada paket seperti itu. (Nama paket yang benar adalahpython3.4-venv .)

    Harap dicatat bahwa Python 3.4 cukup tua, dan beberapa paket Python yang tersedia di PyPI (via pip) tidak berfungsi dengannya.

  • 3.5: Dapat diinstal dari repositori deadsnakes. Berhasil:

    $ sudo add-apt-repository ppa:deadsnakes/ppa
    $ sudo apt-get update
    $ sudo apt-get install python3.5 python3.5-dev python3.5-venv gcc libc6-dev
    $ mkdir /tmp/try3.5
    $ python3.5 -m venv /tmp/try
    $ . /tmp/try/bin/activate
    (try3.5) $ pip install print-hello-world
    ...
    (try3.5) $ print-hello-world
    Hello World!
    
  • 3.6: Ditto, itu dapat diinstal dari repositori deadsnakes. Berhasil:

    $ sudo add-apt-repository ppa:deadsnakes/ppa
    $ sudo apt-get update
    $ sudo apt-get install python3.6 python3.6-dev python3.6-venv gcc libc6-dev
    $ mkdir /tmp/try3.6
    $ python3.6 -m venv /tmp/try3.6
    $ . /tmp/try3.6/bin/activate
    (try3.6) $ pip install print-hello-world
    ...
    (try3.6) $ print-hello-world
    Hello World!
    
  • 3.7: Tidak berfungsi, karena pip installgagal dengan import _ssl, dan python3.7 di repo deadsnakes tidak memiliki modul itu, karena Ubuntu 14.04 dikirimkan dengan versi lama OpenSSL yang tidak didukung Python 3.7. Lihat lebih detail dalam bug ini .

  • 3.8--: Tidak ada paket Ubuntu 14.04 untuk versi Python ini di Ubuntu atau repositori deadsnakes.

poin
sumber
-1
sudo apt-get update 

Bekerja untuk saya.

Sunting: Saya ingin tahu apa sebenarnya masalahnya, tapi saya tidak tahu. Saya mencoba menjalankan perintah seperti yang dijelaskan oleh penanya dan itu memberikan kesalahan kemudian saya memperbarui dan berhasil. :-D

pengguna1953366
sumber
5
Harap jelaskan mengapa jawaban Anda menjawab pertanyaan tersebut.
RyanNerd
2
Menjalankan perintah dan memperbarui pohon paket bukan merupakan jawaban, harap jelaskan
Andres Felipe
-2

Semua ini tidak berhasil untuk saya. Saya menggunakan ubuntu 18.04. Baru saja mencopot pemasangan anaconda sepenuhnya dan semuanya berfungsi. Diposting untuk berjaga-jaga jika itu membantu siapa pun. Untuk perintah yang akan dihapus: https://linuxize.com/post/how-to-install-anaconda-on-ubuntu-18-04/

rm -rf ~/anaconda3
export PATH="/home/linuxize/anaconda3/bin:$PATH" 
rm -rf ~/.condarc ~/.conda ~/.continuum
Anirudh Agarwal
sumber
1
export PATH="..."Perintah Anda sangat kecil kemungkinannya diperlukan untuk menghapus anaconda.
poin