pyvenv nie działa, ponieważ nie ma zapewnionego połączenia


88

Zaktualizowałem wersję Ubuntu 14.04 do Ubuntu 16.04 kilka dni temu. Kiedy próbuję stworzyć wirtualne środowisko przy użyciu

pyvenv .venv

lub

python3 -m venv .venv

Tam jest błąd:

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

Próbowałem uruchomić oba

sudo apt-get install python3-venv

i

sudo apt-get install python3.5-venv

ale to nie rozwiązało mojego problemu.


Mój problem został rozwiązany w systemie operacyjnym z informacjami o wydaniu: Identyfikator dystrybutora: LinuxMint Opis: Linux Mint 18.3 Sylvia Wydanie: 18.3
nix

żadna z odpowiedzi nie rozwiązała tego za mnie. wciąż tkwi w tym samym błędzie
Shoaib Iqbal

Odpowiedzi:


114

Wygląda na to, że był to problem lokalny. Rozwiązany przez wykonanie:

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

znaleziono w tym wątku Błąd ustawień regionalnych języka Python: nieobsługiwane ustawienie regionalne


34
To szalone, ale to prawda
user1703761

8
Naprawdę ciekawy, ale ktoś wie, jaki jest tego powód?
Juan Antonio

nie działa dla mnie w systemie operacyjnym z informacjami o dystrybucji: Identyfikator dystrybutora: LinuxMint Opis: Linux Mint 18.3 Sylvia Wydanie: 18.3
nix

1
Dzięki, uruchamiam tutaj minimalną konfigurację dockera. Nigdy bym nie zgadł.
Antti Haapala

1
@JuanAntonio Wygląda na to, że Ubuntu (co najmniej 16.04) to bistro bez Unicode po wyjęciu z pudełka, jak wspomniano w tym numerze: tickets.puppetlabs.com/browse/IMAGES-498 Chyba powinniśmy dodać ustawienia regionalne do naszego uruchamiania serwera. .
Andreas Bergström

106

spróbuj zainstalować python3.6-venv:

sudo apt-get install python3.6-venv

Dzięki za rozwiązanie. Działało 16.04 (biorąc pod uwagę, że python3.6 był już zainstalowany). NIE rozumiem, że: 1. venv powinno dokładnie sprawić, że użycie apt-get będzie zbędne. Jest częścią standardowej biblioteki. 2. dlaczego domyślna wersja pip używająca venv nie jest najnowszą wersją?
Lionel Trebuchon

26
... lub sudo apt-get install python3.7-venvjeśli używasz Pythona 3.7
Alleo

12
... lub sudo apt-get install python3.8-venvjeśli używasz Pythona 3.8
cowlinator

3
... lub sudo apt-get install python3.9-venvjeśli używasz Pythona 3.9 (na przyszłość)
Andrey Semakin

7
... lub sudo apt-get install python3.10-venvjeśli używasz Pythona 3.10 (na wypadek, gdybyśmy przetrwali 2020)
Steven667

44

Jedna z pozostałych odpowiedzi naprawiła to za mnie ostatnim razem, ale w Pythonie 3.7 musiałem zrobić:

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

Śledzony przez

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

22

W podsystemie Windows Linux i Ubuntu 18.04 było to spowodowane tym, że ostatnio nie aktualizowałem.

Biegłem:

sudo apt update
sudo apt upgrade

Następnie sudo apt install python3-venv zadziałało.

Zwróć uwagę, że wcześniej wypróbowałem również rozwiązanie UTF-8 (uczyniłem je częścią mojego .bashrc), więc mogło to być czynnikiem przyczyniającym się do tego.


4
Nie sądzę, aby rozwiązanie UTF-8 miało znaczenie. Jestem też na WSL Ubuntu 18.04 i kroki sudo apt updatei sudo apt install python3-venvbyły wystarczające.
Theja

1
To jedyne rozwiązanie, które u mnie zadziałało! Próbowałem zmienić lokalizację i zainstalować nowszą wersję Pythona bezskutecznie
arctic.queenolina

2
to też zadziałało dla mnie, próbowałem kilku innych opcji .. nie zadziałało,
Uczeń

genialny, pracował dla mnie !!!
Reckoner

9

W moim przypadku kolejne kroki zadziałały:

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

8

Na wypadek, gdyby to pomogło komukolwiek w dół, otrzymywałem ten sam błąd w Ubuntu 18.04. Ustawienie ustawień regionalnych nie zadziałało, a próba instalacji python3-venvspowodowała błąd:

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

Wygląda na to, że repozytorium apt miało dwie wersje Pythona:

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

Próbowałem zainstalować, Python3.6.5-3ale apt chciał odinstalować wszystkie zależności. Udało mi się rozwiązać problem, instalując Python3.7 i tworząc venv z tym:

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

1
To zadziałało dla mnie. Zrobił sudo apt install python3.8 python3.8-venvi stworzył środowisko wirtualne przy użyciu python3.8 -m venv venv_name. Dzięki!
Amir A. Shabani

5

Napotkałem ten problem na Ubuntu 18.04 w najnowszej wersji Python-3.8 . Moim rozwiązaniem było dodanie umowy PPA firmy Deadsnakes, która dostarcza wymaganą python3.8-distutilspaczkę. python3.8-venvPakiet jest już w repozytorium. Dzięki temu blogowi :

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

Uwaga: to jest tylko tymczasowe rozwiązanie. W najbliższej przyszłości wymagany python3.8-distutilspakiet będzie prawdopodobnie dostępny w domyślnym repozytorium Ubuntu.

Edytować:

W przypadku Ubuntu 20.04 LTS pakiet python3-distutils jest oparty na Pythonie 3.8. Jak dotąd nie ma pakietu distutils dla Pythona 3.8 dostępnego dla Ubuntu 18.04 LTS.

Jak wspomniano w innych komentarzach w tym wątku, distutilsmoże nie być wymagane. Było to dla mojego przypadku użycia, ale proszę rozważyć to rozwiązanie przed dodaniem dodatkowych PPA.


1
sudo apt install python3.8-venvbył dla mnie zwycięzcą. Cała inna pomoc, jaką mogłem znaleźć, sprawiła, że python3-venvzamiast tego próbowałem zainstalować .
user1717828

4

Rozwiązano podobne problemy w Ubuntu18, gdy natknąłem się na tę odpowiedź . Jest podobny do tego, który pracował dla @Niko Rikken, akceptuj tak naprawdę nie potrzebuje żadnych nowych PPA i pakietu "python3.8-distutils". Instalowałem nowe środowisko python3.8 z venv i miałem już zainstalowane i aktualne „python3-venv”, więc moim rozwiązaniem było zainstalowanie tylko „python3.8-venv”:

% sudo apt-get install python3.8-venv

I to sprawiło, że te linie działały:

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

3

Próbować : python3.* -m venv myvenv -

I nie zapomnij zastąpić * swoją specyficzną wersją Pythona


2

Miałem ten sam problem - python env ma 2 wersje dla 2.7 i 3.6.

Wystarczy, że:

  1. Zainstaluj najnowszą wersję pip, instalując instalator pyenv
  2. Upewnij się, że postępujesz zgodnie z instrukcjami instalacji pyenv, które znajdziesz tutaj

Powodzenia!


2

Jeśli Twoim zamiarem było zdobycie Pythona3.8 w tym. pip i venv na Ubuntu 18.04:

  • sudo apt install python3.8 python3.8-venv python3-pip # nie ma pakietu python3.8-pip
  • python3.8 -m venv venv
  • source venv/bin/activate
  • python --version # -> python 3.8.0
  • pip --version # -> pip 9.0.1 from /home/user/venv/lib/python3.8/site-packages (python 3.8)

2

Miałem ten sam problem i szukam rozwiązania. Chodzi o problem:

surepip jest wyłączony w Debianie / Ubuntu dla systemu Python.

A to moje rozwiązanie:

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

Zauważ, że środowisko Pythona bez pipmoże nie być tak przydatne.
ankostis

1

Miałem ten sam problem z istniejącym projektem podczas wykonywania python3 -m venv venv. Właśnie zaktualizowałem wersje Ubuntu i Python. Po usunięciu już istniejącego venvfolderu problem został rozwiązany. (Próbowałem też rozwiązania UTF-8 .)


1

Mój problem był związany z uprawnieniami i własnością. Byłem zalogowany jako właściciel bieżącego katalogu jako inny użytkownik, co doprowadziło do tego błędu. Po przejrzeniu i naprawieniu wszystkich uprawnień udało mi się zainstalować regularl venv


To był dokładnie mój problem. Po przejściu do katalogu domowego bieżącego użytkownika polecenie działało poprawnie. To musi być błąd polegający na założeniu, że python3-venv nie jest zainstalowany, gdy faktycznie występuje problem z uprawnieniami.
Cosmicnet

1

Wypróbuj następujące polecenia:

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

Te polecenia mogą Ci pomóc.

Jeśli pojawi się jakiś błąd, taki jak E: Unable to locate package python3-venv Następnie wypróbuj następujące polecenia:

sudo apt install python3.6-venv

0

Wszystkie te sugestie mi nie pomogły.

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

Więc zrobiłem: sudo apt-get install python3/bionic

Teraz mam Pythona 3.6.5, a apt-list pokazał lepszą listę: $ apt list python3 -a python3 / bionic 3.6.5-3 amd64

Z sudo apt-get install python3-venv/bionicmogłem zainstalować pythno3-venv i wszystko działało.


Używam ubuntu przez około 5 lat, ale nigdy wcześniej nie widziałem tej składni "python3 / bionic": O twoja odpowiedź rozwiązała mój problem, dzięki.
kodmanyagha

Cieszę się, że to działa, ja też nie znałem tej składni, po prostu próbowałem, ponieważ "apt list" wyświetlał pakiety w ten sposób ;-) Jeśli ta odpowiedź ci pomogła, możesz nacisnąć przycisk "up".
Stefan

Jeśli możesz używać niestandardowych nazw pakietów, oznacza to, że masz skonfigurowane niestandardowe źródła pakietów. apt-cache policy python3/bionicmoże pomóc ci dowiedzieć się, skąd pochodzi ten pakiet. Nie pochodzi z Ubuntu.
tripleee

0

W moim przypadku uruchomienie się sudo apt-get install python3.8-venvpowiedzie, ale pokazuje ten sam błąd podczas uruchamiania python3 -m venv .venv.

Wreszcie, to polecenie działa bez zmiany ustawień regionalnych.

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


0

To zadziałało dla mnie ... Najpierw pobiegłem

sudo apt-get update

Następnie

sudo apt-get install -y python3-venv zip


-1
sudo apt-get update 

Pracował dla mnie.

Edycja: chciałbym wiedzieć, na czym dokładnie polega problem, ale nie wiem. Próbowałem uruchamiać polecenia zgodnie z opisem pytającego i dawało to błąd, po czym zaktualizowałem i zadziałało. :-RE


3
Opisz, dlaczego Twoja odpowiedź rozwiązuje pytanie.
RyanNerd

1
Uruchamianie poleceń i aktualizacja drzewa pakietów nie stanowi odpowiedzi, proszę o wyjaśnienie
Andres Felipe

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.