pyvenv çalışmıyor çünkü surepip mevcut değil


93

Birkaç gün önce ubuntu 14.04'ten 16.04 ubuntu'ya yükselttim. Kullanarak sanal ortam oluşturmaya çalıştığımda

pyvenv .venv

veya

python3 -m venv .venv

Bir hata var:

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

İkisini de çalıştırmayı denedim

sudo apt-get install python3-venv

ve

sudo apt-get install python3.5-venv

ama sorunumu çözmedi.


Sorunum işletim sisteminde şu sürüm bilgileriyle çözüldü: Dağıtımcı Kimliği: LinuxMint Açıklama: Linux Mint 18.3 Sylvia Sürüm: 18.3
nix

cevapların hiçbiri benim için çözmedi. hala aynı hataya takılıyor
Shoaib Iqbal

Yanıtlar:


119

Görünüşe göre bu bir yerel sorun. Yürütülerek çözüldü:

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

bu iş parçacığında bulunan Python yerel ayarı hatası: desteklenmeyen yerel ayar ayarı


37
Çılgınca ama doğru
user1703761

8
Gerçekten merak, ama birisi sebebinin ne olduğunu biliyor?
Juan Antonio

dağıtım bilgisi ile işletim sisteminde benim için çalışmadı: Distribütör Kimliği: LinuxMint Açıklama: Linux Mint 18.3 Sylvia Sürüm: 18.3
nix

1
Teşekkürler, burada minimum bir docker kurulumu çalıştırıyorsunuz. Ben istiyorum asla tahmin ettiniz.
Antti Haapala

1
@JuanAntonio Görünüşe göre Ubuntu (en az 16.04), bu sayıda belirtildiği gibi kutudan çıkmış, unicode olmayan bir bistro: tickets.puppetlabs.com/browse/IMAGES-498 Sanırım sunucu önyüklememize yerel ayarlar eklemeliyiz .. .
Andreas Bergström

115

python3.6-venv'i yüklemeyi deneyin:

sudo apt-get install python3.6-venv

1
Çözüm için teşekkürler. 16.04'te çalıştı (tabii ki python3.6'nın zaten kurulu olduğu göz önüne alındığında). Anlamadığım şey şudur: 1. venv, apt-get kullanımını kesinlikle gereksiz hale getirmelidir. Standart kitaplığın bir parçasıdır. 2. venv kullanan varsayılan pip sürümü neden en son sürüm değil?
Lionel Trebuchon

30
... veya sudo apt-get install python3.7-venvpython 3.7 kullanıyorsanız
Alleo

13
... veya sudo apt-get install python3.8-venvpython 3.8 kullanıyorsanız
cowlinator

3
... veya sudo apt-get install python3.9-venvpython 3.9 kullanıyorsanız (gelecek için)
Andrey Semakin

12
... ya sudo apt-get install python3.10-venvda python 3.10 kullanıyorsanız (2020'de hayatta
kalırsak

45

Diğer cevaplardan biri onu geçen sefer çözdü, ancak Python 3.7 ile yapmak zorundaydım:

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

Bunu takiben

python3.7 -m venv /path/to/venv

Ubuntu 18.04 için çalışıyor
iwtu

23

Windows Linux Alt Sistemi ve Ubuntu 18.04 altında, bunun nedeni son zamanlarda yükseltme yapmamış olmamdı.

Koştum:

sudo apt update
sudo apt upgrade

Sonra sudo apt install python3-venvçalıştı.

UTF-8 çözümünü önceden denediğimi de unutmayın (bunu kendi çözümümün bir parçası yaptım .bashrc), böylece katkıda bulunan bir faktör olabilirdi.


4
UTF-8 çözümünün önemli olduğunu düşünmüyorum. Ben WSL Ubuntu 18.04 ve adımlara da değilim sudo apt updateve sudo apt install python3-venvyeterli idi.
Theja

1
Benim için işe yarayan tek çözüm bu! Yerel ayarı değiştirmeyi ve boşuna Python'un daha yeni sürümünü yüklemeyi denedim
arctic.queenolina

2
bu benim için de çalıştı, birkaç başka seçeneği denedim .. işe yaramadı,
Öğrenci

10

Benim durumumda sonraki adımlar işe yaradı:

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

9

Bu, satırın altındaki herhangi birine yardımcı olursa, Ubuntu 18.04'te aynı hatayı alıyordum. Yerel ayarları ayarlamak işe yaramadı ve yüklemeye çalışmak python3-venvşu hatayı verdi:

$ 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.

Görünüşe göre apt deposunda iki python sürümü var:

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

Yüklemeye çalıştım Python3.6.5-3ama apt her bağımlılığı kaldırmak istedim. Python3.7'yi kurarak ve bununla venv oluşturarak sorunu çözebildim:

$ sudo apt-get install python3.7 python3.7-venv
$ python3.7 -m venv my_venv

1
Bu benim için çalıştı. Mü sudo apt install python3.8 python3.8-venvve kullanarak sanal ortam oluşturdu python3.8 -m venv venv_name. Teşekkürler!
Amir A. Shabani

5

Python- 3.8'in son sürümü için Ubuntu 18.04'te bu sorunla karşılaştım . Çözümüm , gerekli paketi sağlayan Deadsnakes PPA'yı eklemekti . Paket deposunda zaten. Bu blog gönderisine teşekkürler :python3.8-distutilspython3.8-venv

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

Not: Bu yalnızca geçici bir çözümdür. Yakın gelecekte, gerekli python3.8-distutilspaket muhtemelen varsayılan Ubuntu deposunda mevcut olacaktır.

Düzenle:

Ubuntu 20.04 LTS için python3-distutils paketi Python 3.8'e dayalıdır. Henüz Ubuntu 18.04 LTS için Python 3.8 paket dağıtım paketi mevcut değil.

Bu konudaki diğer yorumlarda belirtildiği distutilsgibi gerekli olmayabilir. Benim kullanım durumum içindi, ancak lütfen ek PPA'lar eklemeden önce bu çözümü düşünün.


1
sudo apt install python3.8-venvbenim için kazanan oldu. Bulabildiğim diğer tüm yardımlar, python3-venvbunun yerine yüklemeye çalışmamı sağladı .
user1717828

4

Bu cevaba geldiğinde Ubuntu18'deki benzer problemler çözüldü . @Niko Rikken için çalışana benzer, kabul et gerçekten yeni PPA'lara ve "python3.8-distutils" paketine ihtiyaç duymaz. Venv ile yeni python3.8 ortamı kuruyordum ve zaten "python3-venv" kurulu ve güncel oldu, bu yüzden çözümüm sadece "python3.8-venv" kurmaktı:

% sudo apt-get install python3.8-venv

Ve bu şu satırları çalıştırdı:

% python3.8 -m venv ~/envs/new_env
% source ~/envs/new_env/bin/activate

3

Deneyin : python3.* -m venv myvenv -

Ve * yerine kendi python sürümünüzle değiştirmeyi unutmayın


3

Aynı sorunla karşı karşıya kaldım ve bir çözüm arıyorum. Sorunla ilgili:

surepip, sistem python için Debian / Ubuntu'da devre dışı bırakılır.

Ve bu benim çözümüm:

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

2
Olmayan bir python ortamının pipo kadar yararlı olmayabileceğini unutmayın .
ankostis

3

Aşağıdaki komutları deneyin:

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

Bu komutlar sizin için işe yarayabilir.

E: Unable to locate package python3-venv O zaman gibi bir hata alırsanız aşağıdaki komutları deneyin:

sudo apt install python3.6-venv

3

Python güncellendi veya Varsayılan python değiştirildi ve venv zaten yüklendi

sisteminizde kurulu olan venv , önceki python sürümünüz tarafından kurulur (örneğin python3.6). bu yüzden venv mevcut python sürümüyle çalışmıyor (3.8 diyelim).

Bu yüzden önce varsayılan python veya python3 sürümünüzü kontrol edin (mevcut sürümünüzün python3.8 olduğunu varsayalım).

Aşağıdaki gibi mevcut python sürümünden (3.8) bahsederek sanal ortamı yeniden yükleyin

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

Eğer bu olumlu oy vermenize yardımcı oluyorsa, bu platformda yeniyim.


2

Aynı sorunu yaşadım - python env'nin 2.7 ve 3.6 için 2 sürümü var.

Yapmanız gereken tek şey:

  1. Pip'in en son sürümünü yükleyerek kurun. Pyenv yükleyicisini
  2. Burada bulunan pyenv yükleme adımlarını izlediğinizden emin olun.

İyi şanslar!


2

Niyetiniz python3.8 dahil olmaksa. Ubuntu 18.04'te pip ve venv:

  • sudo apt install python3.8 python3.8-venv python3-pip # python3.8-pip paketi yok
  • python3.8 -m venv venv
  • source venv/bin/activate
  • python --version # -> python 3.8.0
  • pip --version /home/user/venv/lib/python3.8/site-packages (python 3.8) 'den # -> pip 9.0.1

1

Mevcut bir projeyi yürütürken aynı sorunu yaşadım python3 -m venv venv. Ubuntu ve Python sürümlerimi yeni güncelledim. Zaten var olan venvklasörü kaldırdıktan sonra sorun çözüldü. ( UTF-8 çözümünü de denedim .)


1

Sorunum izinler ve sahiplikle ilgiliydi. Geçerli dizinin sahibi olarak farklı bir kullanıcıyla oturum açtım ve bu da bu hataya neden oldu. Tüm izinleri gözden geçirip düzelttikten sonra, venv normalini yükleyebildim


Bu benim sorunumdu. Mevcut kullanıcıların ana dizinine geçtiğimde komut iyi çalıştı. Bu, python3-venv'in aslında bir izin sorununa uğradığında yüklenmediğini varsaydığı bir hata olmalıdır.
Cosmicnet

0

Tüm bu öneriler bana yardımcı olmadı.

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

Ben de yaptım: sudo apt-get install python3/bionic

Şimdi python 3.6.5'e sahibim ve apt-list daha iyi bir liste gösterdi: $ apt list python3 -a python3 / bionic 3.6.5-3 amd64

İle sudo apt-get install python3-venv/bionicpythno3-venv kurabilirdim ve her şey çalıştı.


Yaklaşık 5 yıldır aktif olarak ubuntu kullanıyorum ama daha önce "python3 / bionic" sözdizimini görmemiştim: Cevabınız sorunumu çözdü teşekkürler.
kodmanyagha

İşe yaradığına sevindim, bu sözdizimini de bilmiyordum, sadece denedim çünkü "apt list" paketleri bu şekilde gösteriyordu ;-) Eğer bu cevap size yardımcı olduysa, "yukarı" düğmesine basabilirsiniz.
Stefan

Standart olmayan paket adlarını kullanabiliyorsanız, yapılandırılmış standart olmayan paket kaynaklarınız olduğu anlamına gelir. apt-cache policy python3/bionicbu paketin nereden geldiğini anlamanıza yardımcı olabilir. Ubuntu'dan değil.
üçlü

0

Benim durumumda, koşma sudo apt-get install python3.8-venvbaşarılı oluyor ancak çalışırken aynı hatayı gösteriyorpython3 -m venv .venv .

Son olarak, bu komut yerel ayarı değiştirmeden çalışır.

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


0

Bu benim için çalıştı ... İlk olarak koştum

sudo apt-get update

Sonra

sudo apt-get install -y python3-venv zip


0

İşte Ubuntu 14.04 için cevabım. Venv ve pip'i çeşitli Python sürümleriyle çalıştırabildim. Detaylar:

  • 3.4: Ubuntu 14.04, Python 3.4'e sahiptir (python3.4 paketi vb. Olarak). İşe yarıyor:

    $ 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!
    

    Eğer python3.4-venvkaldırılır apt-get installyukarıdaki komutu, daha sonra python3.4 -m venvsöz konusu aynı hata iletisi görüntüler. Bununla birlikte, hata mesajı apt-get install python3-venvsorunu çözmekten bahsediyor , ancak bu işe yaramıyor, böyle bir paket yok. (Doğru paket adıpython3.4-venv .)

    Python 3.4'ün oldukça eski olduğunu ve PyPI'de (pip aracılığıyla) bulunan bazı Python paketlerinin onunla çalışmadığını lütfen unutmayın.

  • 3.5: deadsnakes deposundan yüklenebilir. İşe yarıyor:

    $ 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: Aynen, deadsnakes deposundan kurulabilir. İşe yarıyor:

    $ 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: Çalışmaz, çünkü deadsnakes repo'sundaki python3.7 pip installile başarısız olur import _sslve bu modüle sahip değildir, çünkü Ubuntu 14.04, Python 3.7'nin desteklemediği eski OpenSSL sürümüyle birlikte gelir. Bu hatada daha fazla ayrıntı görün .

  • 3.8--: Ubuntu veya deadsnakes depolarında bu Python sürümleri için Ubuntu 14.04 paketi yok.


-1
sudo apt-get update 

Benim için çalıştı.

Düzenleme: Sorunun tam olarak ne olduğunu bilmek isterim, ama bilmiyorum. Soru soran tarafından açıklanan komutları çalıştırmayı denedim ve hata veriyordu, sonra güncelledim ve çalıştı. :-D


5
Lütfen cevabınızın soruyu neden çözdüğünü açıklayın.
RyanNerd

2
Komutları çalıştırmak ve paket ağacını güncellemek bir cevap teşkil etmiyor, lütfen ayrıntılı bilgi verin
Andres Felipe

-2

Bunların hiçbiri benim için işe yaramadı. Ubuntu 18.04 kullanıyorum. Sadece anaconda'yı tamamen kaldırdım ve her şey çalıştı. Herkese yardımcı olması ihtimaline karşı yayınlandı. Kaldırılacak komutlar için: 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

1
Sizin export PATH="..."komut anaconda çıkarılması için gerekli olan çok olası değildir.
pts
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.