Nie znaleziono polecenia Virtualenv


207

Nie mogłem dostać się virtualenvdo pracy pomimo różnych prób. Zainstalowałem virtualenvna MAC OS X, używając:

pip install virtualenv

i dodałem również PATHdo mojego .bash_profile. Za każdym razem, gdy próbuję uruchomić virtualenvpolecenie, zwraca:

-bash: virtualenv: command not found

Za każdym razem, gdy uruchamiam pip install virtualenv, zwraca:

Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

Rozumiem, że w systemie Mac virtualenvpowinien być poprawnie zainstalowany w

/usr/local/bin

virtualenvJest rzeczywiście zainstalowane /usr/local/bin, ale gdy próbuję uruchomić virtualenvpolecenia, polecenie nie zostanie znaleziony. Próbowałem również uruchomić virtualenvpolecenie w katalogu /usr/local/bini daje mi ten sam wynik:

-bash: virtualenv: command not found

Są to ŚCIEŻKI, które dodałem do mojego .bash_profile

export PATH=$PATH:/usr/local/bin
export PATH=$PATH:/usr/local/bin/python
export PATH=$PATH:/Library/Framework/Python.framework/Version/2.7/lib/site-packages

Jakieś obejścia tego? Dlaczego tak jest?


1
Spróbuj dodać dowiązanie symboliczne do pliku wykonywalnego virtualenv w / usr / local / bin
Justin Fay

Gdzie powinienem utworzyć dowiązanie symboliczne? Nadal nie działa, mimo że próbowałem dodać dowiązanie symboliczne w katalogu, w którym chcę użyć virtualenv @justinfay
Arial

2
patrząc na ścieżki powyżej może to być coś takiego: zastąp ostatnią ścieżkę w poleceniu ścieżką do rzeczywistego pliku wykonywalnego virtualenv:$ ln -s /usr/bin/virtualenv /Library/Framework/Python.framework/Version/2.7/lib/site-packages/virtualenv/virtualenv.py
Justin Fay

2
to, co zadziałało, to dodanie dowiązania symbolicznegoln -s /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py /usr/local/bin/virtualenv
Aliza

Nie działa w lubuntu
c24b

Odpowiedzi:


336

Jeśli zainstalowałeś go przy pomocy

pip install virtualenv

Musisz biec

sudo /usr/bin/easy_install virtualenv

który to wkłada /usr/local/bin/.

Powyższy katalog domyślnie powinien znajdować się w twoim PATH; w przeciwnym razie odpowiednio edytuj swoje .zshrc(lub. bashrc).


1
zawsze chętnie pomagam @nguns
Tal Avissar

na instancji AWS EC2 z Amazon Linux, jeśli próbujesz Let's Encrypt's certbot, wypróbuj to rozwiązanie. To była jedyna sugestia, która rozwiązała mój problem z virtualenv.
emrahgunduz

2
Jesteście najlepsi!
leon wu

6
wyjście tosudo: /usr/bin/easy_install: command not found
Ced

2
Dziękuję za to - ale chciałbym wiedzieć, jakie są tutaj czary - co robi „easy_install”, czego nie robi zwykły pip? tj. dlaczego to działa?
Thomas Kimber

153

Napotkałem ten sam problem i tak go rozwiązałem:

  1. Problem przyszedł mi do głowy, ponieważ zainstalowałem virtualenv przez pip jako zwykły użytkownik (nie root). pip zainstalował pakiety w katalogu~/.local/lib/pythonX.X/site-packages
  2. Kiedy uruchomiłem pip jako root lub z uprawnieniami administratora (sudo), zainstalowałem pakiety w /usr/lib/pythonX.X/dist-packages. Ta ścieżka może być dla Ciebie inna.
  3. Komenda virtualenv jest rozpoznawana tylko w drugim scenariuszu
  4. Aby rozwiązać problem, zrób to, pip uninstall virtualenva następnie zainstaluj ponownie za pomocą sudo pip install virtualenv(lub zainstaluj jako root)

8
Poszedłem za twoim rozwiązaniem i dostałem komunikat „... Jeśli wykonujesz pip z sudo, możesz chcieć flagi -H sudo”. Wreszcie sudo -H pip install virtualenv wykonał dla mnie pracę (na OS X), dziękuję
smudo78

1
co jeśli root nie jest dostępny na twoim komputerze?
user5359531,

Rozwiązać problem. Myślę, że zamiast tego można przejść do globalnego katalogu --user.

Ten problem występuje również wtedy, gdy sam pip jest zainstalowany w ~ / .local / SOME_PATH. I cped wszystko w site-packagesreż INTO /usr/lib/pythonx.x/site-packagesi rm -rfed oryginalnego katalogu.
wczoraj

47

Najprostsza odpowiedź. Właśnie:

pip uninstall virtualenv

i wtedy:

pip install virtualenv

Lub może zainstalowałeś virtualenv sudo, w takim przypadku:

pip install --user virtualenv

Łał! To właśnie zrobiło dla mnie lewę. Używam pyenvprzy okazji
race_carr

W ten sposób można przejść na Mac OS X za pomocą naparu.
TCSGrad

Walczyłem z tym od tygodni i utrudniałem mój ograniczony czas na pracę nad projektem Pythona, a to było jedyne rozwiązanie, które działało dla mnie na Macu. Dziękuję Ci!
HellaDev

37

Na Ubuntu 18.04 LTS również spotkałem się z tym samym błędem. Działa następujące polecenie:

sudo apt-get install python-virtualenv

1
brew install python-virtualenvnie istnieje
Leonard

Działa jak urok na moim 18.04, Dzięki
Nischaya Sharma

Głosowano w dół, aby awansować aptjako następca apt-get.
Greybeard

24

Miałem ten sam problem na Mac OS X El Capitan .

Kiedy tak instalowałem virtualenv, sudo pip3 install virtualenvnie miałem virtualenvpod linią poleceń.

Rozwiązałem ten problem, wykonując następujące kroki:

  1. Odinstaluj poprzednie instalacje.
  2. Przed virtualenvinstalacją przełącz się na konto superużytkownika, dzwoniącsudo su
  3. Zainstaluj virtualenvdzwoniącpip3 install virtualenv
  4. Wreszcie powinien mieć możliwość dostępu virtualenvz obu useri super userrachunku.

15

Rozwiąż problem

Spróbuj zainstalować z --verboseflagą

pip install virtualenv --verbose

Wyjście będzie wyglądać mniej więcej tak

  ..
  Using cached virtualenv-15.1.0-py2.py3-none-any.whl
  Downloading from URL https://pypi.python.org/packages/6f/86/3dc328ee7b1a6419ebfac7896d882fba83c48e3561d22ddddf38294d3e83/virtualenv-15.1.0-py2.py3-none-any.whl#md5=aa7e5b86cc8cdb99794c4b99e8d670f3 (from https://pypi.python.org/simple/virtualenv/)
Installing collected packages: virtualenv

  changing mode of /home/manos/.local/bin/virtualenv to 755
Successfully installed virtualenv-15.1.0
Cleaning up...

Z danych wyjściowych możemy zobaczyć, że jest zainstalowany, /home/manos/.local/bin/virtualenvwięc upewnijmy się, że PATH to zawiera.

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

W moim przypadku wyraźnie widać, że /home/manos/.local/bincałkowicie go brakuje i dlatego powłoka nie może znaleźć programu.

Rozwiązania

Możemy to rozwiązać na wiele sposobów:

  1. Możemy zainstalować bezpośrednio w określonym katalogu, bawiąc się opcjami pip (niezalecane).
  2. Utwórz odpowiednie dowiązania symboliczne na poziomie /usr/local/binpodobnym lub podobnym.
  3. Dołącz /home/manos/.local/bindo ŚCIEŻKI.
  4. Zainstaluj jako sudo, aby zainstalować bezpośrednio w /usr/local/bin

Dwie ostatnie opcje są prawdopodobnie najbardziej sensowne. Ostatnie rozwiązanie jest najprostsze, dlatego pokażę rozwiązanie 3.

Dodaj to do ~ / .profile:

PATH="$PATH:$HOME/.local/bin"

Wyloguj się i zaloguj ponownie i powinno działać.


1
To działało idealnie. Powinna to być zaakceptowana odpowiedź i +1 za szczegółowe wyjaśnienie
David The Programmer

13

python3 -m virtualenv virtualenv_name

python -m virtualenv nazwa_ wirtualna_v


pracował dla mnie bez 3. python -m virtualenv <nazwa>
ofer.sheffer

11

W moim przypadku pobiegłem pip show virtualenvpo informacje o pakiecie virtualenv. Będę wyglądać podobnie do tego i pokażę również lokalizację pakietu:

user@machine:~$ pip show virtualenv
Name: virtualenv
Version: 16.2.0
Summary: Virtual Python Environment builder
Home-page: https://virtualenv.pypa.io/
Author: Ian Bicking
Author-email: ianb@colorstudy.com
License: MIT
Location: /home/user/.local/lib/python3.6/site-packages
Requires: setuptools

Z tego chwyć część lokalizacji do .localczęści, która w tym przypadku jest /home/user/.local/. Możesz znaleźć polecenie virtualenv pod /home/user/.local/bin/virtualenv.

Następnie możesz uruchamiać polecenia takie jak /home/user/.local/bin/virtualenv newvirtualenv.


10

Miałem ten sam problem. Wykonałem następujące kroki, aby to zadziałało

sudo pip uninstall virtualenv

sudo -H pip install virtualenv

To jest to. Zaczęło działać.

Użycie sudo -H----> sudo -H: ustaw HOMEzmienną na docelowy katalog domowy użytkownika.


1
Naprawia dla mnie dokładnie ten sam problem ... dlaczego nie jest sprawdzany jako rozwiązanie?
manuele

9

Powiedziałeś, że za każdym razem, gdy uruchamiasz pip install, dostajesz Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages. Co musisz zrobić, to:

  1. Zmień katalog (przejdź do tego, w którym virtualenv.py) cd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
  2. Jeśli to zrobisz ls, zobaczysz, że skrypt tam jestvirtualenv.py
  3. Uruchom skrypt w następujący sposób: python virtualenv.py --distribute /the/path/at/which/you/want/the/new/venv/at theNameOfTheNewVirtualEnv

Mam nadzieję że to pomoże. Radzę więcej badać miejsca. Oto dobry zasób: https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/


8

Miałem problemy, ponieważ użyłem apt do zainstalowania pakietu python-virtualenv. Aby go uruchomić, musiałem usunąć ten pakiet apt-get remove python-virtualenvi zainstalować go pip install virtualenv.


1
Co pozostawia pytanie: dlaczego, do diabła, mój pakiet python3-virtualenv jest zepsuty?
Dmitri DB

6

Upewnij się, że virtualenvjest wykonywalny.

Jeśli virtualenvnie zostanie znalezione, uruchomienie pełnej ścieżki ( /usr/local/bin/virtualenv) powinno działać.


5

Myślę, że twój problem można rozwiązać za pomocą prostego dowiązania symbolicznego , ale tworzysz dowiązanie symboliczne do niewłaściwego pliku . O ile wiem, virtualenv jest zainstalowany /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv(możesz zmienić liczby dla swojej wersji Pythona), więc polecenie utworzenia dowiązania symbolicznego powinno być:

ln -s /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv /usr/local/bin/virtualenv

skonfigurowanie łącza sym było wszystkim, co musiałem zrobić. Dziękuję Ci.
Kirby

5

Na Ubuntu 18.4 na AWS instalacja z PIP nie działa poprawnie. Za pomocą instalacji apt-get problem został dla mnie rozwiązany.

sudo apt-get install python-virtualenv

i do sprawdzenia

virtualenv --version

4

Ten sam problem: Tak właśnie zrobił pip uninstall virtualenv Następnie pip install virtualenv

pip install virtualenv --user

Gromadzenie virtualenv Korzystanie z pamięci podręcznej https://files.pythonhosted.org/packages/b6/30/96a02b2287098b23b875bc8c2f58071c35d2efe84f747b64d523721dc2b5/virtualenv-16.0.0-py2.py3-none-any.whl Instalowanie pakietów wirtualnych

Potem mam to:

Skrypt virtualenv jest zainstalowany w '/Users/brahim/Library/Python/2.7/bin', którego nie ma na PATH. Rozważ dodanie tego katalogu do PATH lub, jeśli wolisz zignorować to ostrzeżenie, użyj --no-warn-script-location.

co wyraźnie wskazuje, gdzie jest zainstalowany i co zrobić, aby go uzyskać


2

Jeśli używasz Linuksa, otwórz terminal i wpisz virtualenv w połowie i autouzupełnianie za pomocą klawisza Tab. Jeśli nie ma automatycznego uzupełniania, zainstaluj virtualenv w systemie, uruchamiając:

mycomp$sudo apt-get install virtualenv
//if you're already super user.
mycomp#apt-get install virtualenv

Możesz teraz przejść do miejsca, w którym chcesz utworzyć projekt i wykonać:

myprj$pip3 install virtualenv    
//to install python 3.5 and above  
myprj$virtualenv venv --python=python3.5  
//to activate virtualenv  
(venv)myprj$source venv/bin/activate  
(venv)myprj$deactivate

Uaktualniłem do Pythona 3.7. Próbowałem zainstalować virtualenv, zawsze zwróci „Błąd: Nie można znaleźć wersji, która spełnia wymagania virtualenv (z wersji: brak)”. Czytałem gdzieś, że z pewnej wersji Pythona 3.x jest dostarczana z zainstalowanym virtualenv, ale próba stworzenia prostego środowiska wirtualnego nie działa, zwróci błąd, że nie zna polecenia virtualenv. Ale zadziałało z następującą komendą z twojej odpowiedzi: „virtualenv venv --python = python3.7”. Nic wcześniej nie zrobiono. W przypadku, gdy pomaga to komukolwiek innemu. Środowisko MacOS.
CarmenA

1

działa to w Ubuntu 18 i nowszych (nie testowane w poprzednich wersjach):

sudo apt install python3-virtualenv

0

Wykonaj te podstawowe kroki, aby skonfigurować wirtualną środowisko

sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/get-pip.py ~/.cache/pip

musimy zaktualizować nasz ~/.bashrc

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

~/.bashrcPlik jest po prostu skryptem powłoki bash działa przy każdym uruchomieniu nowego terminalu. Zwykle używasz tego pliku do ustawiania różnych konfiguracji. W tym przypadku ustawiamy zmienną środowiskową wywoływaną w WORKON_HOME celu wskazania katalogu, w którym żyją nasze środowiska wirtualne Python. Następnie ładujemy niezbędne konfiguracje z virtualenvwrapper.

Aby zaktualizować ~/.bashrcplik, wystarczy użyć standardowego edytora tekstu, nano jest prawdopodobnie najłatwiejszym w obsłudze. Prostszym rozwiązaniem jest użycie polecenia cat i całkowite unikanie edytorów:

echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.bashrc
echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc

Po edycji naszego pliku ~ / .bashrc musimy ponownie załadować zmiany:

source ~/.bashrc

Teraz, gdy zainstalowaliśmy virtualenv i virtualenvwrapper, następnym krokiem jest stworzenie wirtualnego środowiska Python - robimy to za pomocą komendy mkvirtualenv.

mkvirtualenv YOURENV

0

Dla mnie został zainstalowany w tej ścieżce (python 2.7 na MacOS): $ HOME / Library / Python / 2.7 / bin


0

Robię internetowy kurs Angeli Yu na iOS i miałem ten sam problem, a także otrzymywałem błąd 13, gdy próbowałem uruchomić virtualenv --python=/{myPath} {newVirtualEnvName}

Rozwiązałem to przez:

  1. przejście do użytkownika sudo sudo su
  2. nawigacja do mojego folderu docelowego (gdzie chcę, aby moja nowa wirtualna środowisko działała) tj. / Users / muUserName / Environments /
  3. uruchom polecenie, python -m virtualenv python27gdzie python27 to nazwa mojego nowego środowiska wirtualnego
  4. powyżej utworzony folder pathon27 w folderze Environments , a następnie udało mi się uruchomić, source python27/bin/activateaby uruchomić virtualenv

0

Prosta odpowiedź brzmi: jeśli nie jesteś użytkownikiem sudo, tak jak ja nim nie byłam. Musisz dodać ścieżkę do folderu bin ( /home/myusername/.local/bin). Więc w zasadzie linia poleceń wyszukuje, która z tych ścieżek jest poleceniem, które wpisałeś.

export PATH=/home/b18150/.local/bin:/usr/bin:/bin

tu będzie szukał w local/binpierwszy wtedy /usr/bini wtedy /bin.


0

Miałem ten sam problem przez długi czas. Rozwiązałem go, uruchamiając te dwa polecenia, po pierwsze, aby zainstalować, to aktywować env:

python3 -m pip install virtualenv
python3 -m virtualenv yourenvname

Należy zauważyć, że używam python3, można go zmienić tylko pythonjeśli python3się nie powiedzie. Dzięki.


-3
apt update
apt upgrade
apt install ufw python virtualenv git unzip pv

3 polecenia i wszystko działa!


Pytanie dotyczy systemu Mac OS, nie maapt
Matteo

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.