Jak aktywować virtualenv?

234

Przeszedłem poszukiwania i wypróbowałem różne alternatywy bez powodzenia i spędziłem nad tym kilka dni - doprowadzając mnie do szaleństwa.

Działając na Red Hat Linux z Pythonem 2.5.2 Rozpocząłem korzystanie z najnowszej Virtualenv, ale nie mogłem go aktywować, znalazłem coś sugerującego potrzebną wcześniejszą wersję, więc użyłem Virtualenv 1.6.4, ponieważ powinien on działać z Python 2.6.

Wygląda na to, że instalacja środowiska wirtualnego jest dobra

[necrailk@server6 ~]$ python virtualenv-1.6.4/virtualenv.py virtual
New python executable in virtual/bin/python
Installing setuptools............done.
Installing pip...............done.

Środowisko wygląda dobrze

[necrailk@server6 ~]$ cd virtual
[necrailk@server6 ~/virtual]$ dir
bin  include  lib

Próbuję aktywować

[necrailk@server6 ~/virtual]$ . bin/activate
/bin/.: Permission denied.

Sprawdzone chmod

[necrailk@server6 ~/virtual]$ cd bin
[necrailk@server6 bin]$ ls -l
total 3160
-rw-r--r--    1 necrailk biz12        2130 Jan 30 11:38 activate
-rw-r--r--    1 necrailk biz12        1050 Jan 30 11:38 activate.csh
-rw-r--r--    1 necrailk biz12        2869 Jan 30 11:38 activate.fish
-rw-r--r-

Problem, więc to zmieniłem

[necrailk@server6 bin]$ ls -l
total 3160
-rwxr--r--    1 necrailk biz12        2130 Jan 30 11:38 activate
-rw-r--r--    1 necrailk biz12        1050 Jan 30 11:38 activate.csh
-rw-r--r--    1 necrailk biz12        2869 Jan 30 11:38 activate.fish
-rw-r--r--    1 necrailk biz12        1005 Jan 30 11:38 activate_this.py
-rwxr-xr-x    1 necrailk biz

Spróbuj activateponownie

[necrailk@server6 ~/virtual]$ . bin/activate
/bin/.: Permission denied.

Wciąż nie ma radości ...

Larry
źródło
6
próbowałeś "source ~ / virtual / bin / Activ"?
mmbrian
4
Z katalogu twojego środowiska zrobić . bin/activatei powinno działać dobrze.
dansalmo
1
Myślę, że wystarczyło użyć sourcepolecenia, tj.source bin/activate
Hack-R
1
Myślę, że trzeba to zrobić z katalogu virtualenv więc najpierw cd ~/.virtualenvs/*environmentname*następniesource ~/.virtual/bin/activate
11m0

Odpowiedzi:

311

Oto mój przepływ pracy po utworzeniu folderu i cdwejściu do niego:

$ virtualenv venv --distribute
New python executable in venv/bin/python
Installing distribute.........done.
Installing pip................done.
$ source venv/bin/activate
(venv)$ python
topherjaynes
źródło
4
ok, próbowałem tego bez radości [necrailk @ server6 ~ / virtual] $ cd [necrailk @ server6 ~] $ $ source virtual / bin / enable source: Zmienna niezdefiniowana. [necrailk @ server6 ~] $ sh virtual / bin / aktywuj [necrailk @ server6 ~] $
Larry
8
Nie należy wpisać $znak, który ii wygląda zrobiłeś tutaj: [necrailk@server6 ~]$ $source. $służy do wskazania wiersza polecenia.
Justin Garrick
3
Nadal pojawia się błąd źle umieszczonego () ... co robić?
2
ten sam błąd tutaj :( użytkownik @ mintdesk ~ / python_v $ venv / bin / aktywacja bash: venv / bin / aktywacja: Odmowa dostępu
Rui Lima
1
Alternatywą dla $ . venv/bin/activate
ciągłego
89

Zapomniałeś zrobić, source bin/activategdzie source jest nazwą pliku wykonywalnego. Uderzyło mnie też kilka razy, łatwo pomyśleć, że instrukcja mówi „wykonaj to z katalogu głównego folderu środowiska”.

Nie ma potrzeby activatewykonywania za pomocą chmod.

kqw
źródło
4
OP wpisany . bin/activate. Zwróć uwagę na ., który jest synonimem source.
Thomas
1
„source to nazwa pliku wykonywalnego” ... który plik wykonywalny? cmd.exe? powershell.exe?
StingyJack 11.04.19
1
Próbuję aktywować środowisko z crona i nie działałoby to bez możliwości wykonywania (chmod 755).
Tahlor
70

Możesz to zrobić

source ./python_env/bin/activate

lub po prostu przejdź do katalogu

cd /python_env/bin/

i wtedy

source ./activate

Powodzenia.

cquptzzq
źródło
27

Cd do ścieżki środowiska, przejdź do folderu bin. W tym momencie, gdy użyjesz polecenia ls, powinieneś zobaczyć plik „aktywuj”.

teraz wpisz

source activate
Reihan_amn
źródło
23

Przejdź do katalogu projektu. W moim przypadku microblogjest to katalog projektu flask, a pod microblogkatalogiem powinny znajdować się appi venvfoldery. następnie uruchom poniższe polecenie: To działa dla mnie w Ubuntu.

source venv/bin/activate

wprowadź opis zdjęcia tutaj

GNK
źródło
17

Problemem jest /bin/.polecenie. To naprawdę dziwne. powinien zawsze być linkiem do katalogu, w którym się znajduje. (Szczerze mówiąc, chyba że .jest to dziwny alias lub funkcja, nawet nie widzę, jak to możliwe). Jest również trochę niezwykłe, że twoja powłoka nie ma . wbudowanegosource .

Jednym szybkim rozwiązaniem byłoby po prostu uruchomienie virtualenv w innej powłoce. (Oczywistą drugą zaletą jest to, że zamiast tego deactivatemożesz po prostu exit.)

/bin/bash --rcfile bin/activate

Jeśli twoja powłoka go obsługuje, możesz także mieć niestandardowe sourcepolecenie, które powinno zrobić to samo co ., ale może nie istnieć. (Wszystko powiedziawszy, powinieneś spróbować dowiedzieć się, dlaczego twoje otoczenie jest dziwne lub spowoduje to ból w przyszłości.)

Nawiasem mówiąc, nie trzeba było chmod +xtych plików. Pliki muszą być wykonywalne tylko wtedy, gdy chcesz je wykonać bezpośrednio . W takim przypadku próbujesz je uruchomić ., aby nie były potrzebne.

kojiro
źródło
2
Powinieneś także źródła bin/activate, a nie źródła .bin/activate. Może nawet pracować z .ówczesnym ...
krlmlr 30.01.2013
@krlmlr prawda, przypuszczałem, że była literówka, ponieważ w następnym wierszu on cds do bin.
kojiro 30.01.2013
1
hi [necrailk @ server6 ~ / virtual] $ source bin / aktywuj Źle umieszczone () 's. [necrailk @ server6 ~ / virtual] $
Larry
2
korjiro - miałeś rację - musiałem dowiedzieć się, dlaczego środowisko było dziwne - okazało się, że jest to niestandardowa implementacja basha - przejście na standardową bash rozwiązało wszystkie problemy
Larry
@larry cieszę się, że się udało: nie zapomnij zaznaczyć odpowiedzi jako poprawnej.
kojiro
17

$ mkdir <YOURPROJECT> Utwórz nowy projekt

$ cd <YOURPROJECT> Zmień katalog na ten projekt

$ virtualenv <NEWVIRTUALENV> Tworzenie nowego virtualenv

$ source <NEWVIRTUALENV>/bin/activate Aktywacja tego nowego virtualenv

rdza
źródło
12

zamiast ./activate

posługiwać się source activate

Zobacz ten zrzut ekranu

Joy Mukherjee
źródło
9

W systemie Windows Możesz wykonać jako:

Aby utworzyć wirtualną env jako: virtualenv envName –python = python.exe (jeśli nie, stwórz zmienną środowiskową)

Aby aktywować wirtualną env:> \ ścieżka \ do \ envName \ Scripts \ Activ

Aby dezaktywować wirtualną env:> \ path \ to \ env \ Scripts \ dezaktywuj

Działa dobrze w nowej wersji Pythona.

susan097
źródło
Aby dodać do tego szczegółowe wyjaśnienia: po utworzeniu środowiska wirtualnego virtualenv venv , a następnie ręcznie przejdź do folderu Skrypty, który został utworzony tylko w celu przeglądania plików, zobaczysz niektóre pliki aktywacji. Dlatego właśnie aktywujemy go w systemie Windows. Tak więc cdw folderze Skrypty i wpisz . activatew wierszu polecenia (pamiętaj o spacji po kropce). Zauważysz swoją ścieżkę w zmianach wiersza poleceń, dodając (venv) na początku ścieżki. Oznacza to, że jest teraz aktywowany.
Azurespot
6
source virtualen_name/bin/activate

kod

Harish Kumawat
źródło
4
Ta odpowiedź jest już dostarczona (z większą ilością informacji) w istniejących odpowiedziach. Odpowiadając na starsze pytania z odpowiedziami, upewnij się, że twoja odpowiedź wnosi coś nowego lub jest lepszej jakości niż istniejące odpowiedzi.
Mark Rotteveel,
4

Poleciłbym również virtualenvwrapper. Działa to dla mnie cuda i zawsze mam problemy z aktywacją. http://virtualenvwrapper.readthedocs.org/en/latest/

Erika
źródło
cześć źródło i. (kropka) wydaje się wymienną necrailk @ server6 ~ / virtual] $ source bin / enable Źle umieszczone () 's. to nie wydaje się działać
Larry
moje pozwolenie na bin: drwxrwxr-x 2 erika erika 4096 24.01.2013 14:37 bin /
Erika
zgodnie z dokumentacją wirtualna wirtualny obecnie nie jest testowany pod kątem python2.5, więc nie jest to wygodne dodając do moich możliwych problemów - ale dzięki
Larry
Po prostu łapanka. odkryłem, że mój host używa niestandardowej powłoki. Po zmianie na normalny Bash wszystko działało tak, jak powinno. teraz wyświetla wirtualny env w pytaniu i wszystkie ścieżki są modyfikowane zgodnie z tym. Wielkie dzięki za pomoc i sugestie.
Larry
3

Utwórz własne wirtualne środowisko Python o nazwie <Your Env _name >:. Dałem to VE.

git clone https://github.com/pypa/virtualenv.git
python virtualenv.py VE

Aby aktywować nowe środowisko wirtualne, uruchom ( zauważ, że go ./tu nie ma ):

. VE/bin/activate

Przykładowe dane wyjściowe ( zmieniono monit o notatkę ):

(VE)c34299@a200dblr$

Po skonfigurowaniu środowiska wirtualnego możesz usunąć Virtualenvrepozytorium.

Manas
źródło
2
Nie powinieneś sprawdzać głównej gałęzi virtualenv i oczekiwać, że rzeczywiście zadziała. Zamiast tego użyj wersji oznaczonej.
Jon Bringhurst
3

Na Macu zmień powłokę na BASH (pamiętaj, że wirtualna env działa tylko w powłoce bash)

[user@host tools]$. venv/bin/activate 

.: Command not found.

[user@host tools]$source venv/bin/activate

Badly placed ()'s.

[user@host tools]$bash

bash-3.2$ source venv/bin/activate

(venv) bash-3.2$ 

Bingo, zadziałało. Zobacz monit zmieniony.

W systemie Ubuntu:

user@local_host:~/tools$ source toolsenv/bin/activate

(toolsenv) user@local_host~/tools$ 

Uwaga: monit zmieniony

sunil_kumar_sahu
źródło
2

Miałem problem z uruchomieniem źródła / bin / aktywacji, a potem zdałem sobie sprawę, że używam tcsh jako powłoki terminalu zamiast bash. po zmianie mogłem aktywować Venv.

Jason
źródło
1

Windows 10

W systemie Windows tworzone są następujące katalogi:

Katalogi środowiska wirtualnego systemu Windows 10

Aby aktywować środowisko wirtualne w systemie Windows 10.

down\scripts\activate

Katalog \ scripts zawiera plik aktywacyjny.

Linux Ubuntu

W Ubuntu tworzone są następujące katalogi:

Katalogi środowiska wirtualnego Linux Ubuntu

Aby aktywować środowisko wirtualne w systemie Linux Ubuntu.

source ./bin/activate

Katalog / bin zawiera plik aktywacyjny.


Środowisko wirtualne skopiowane z systemu Windows do systemu Linux Ubuntu i na odwrót

Jeśli folder środowiska wirtualnego został skopiowany z systemu Windows do systemu Linux Ubuntu, to zgodnie z katalogami:

source ./down/Scripts/activate
Muhammad Faizan Fareed
źródło
1

uruchom ten kod, zostanie on aktywowany, jeśli korzystasz z komputera z systemem Windows
source venv/Scripts/activate

wprowadź opis zdjęcia tutaj

Jeffery White
źródło
0

Prawdopodobnie trochę za późno, by opublikować tutaj swoją odpowiedź, ale mimo to opublikuję, ale może to komuś przynieść korzyść,

Napotkałem ten sam problem,

Głównym powodem jest to, że stworzyłem virtualenv jako użytkownik „root”, ale później próbował aktywować go za pomocą innego użytkownika.

chmod nie będzie działać, ponieważ nie jesteś właścicielem pliku, dlatego alternatywą jest użycie chown (aby zmienić własność)

Na przykład:

Jeśli masz swojego virtualenv utworzonego w / home / abc / ENV

Następnie CD do / home / abc

i uruchom polecenie: chown -Rv [użytkownik-do-kogo-chcesz-zmienić-własność] [folder / nazwa pliku, którego własność należy zmienić]

W tym przykładzie komendy wyglądałyby następująco: chown -Rv abc ENV

Po pomyślnej zmianie własności możesz po prostu uruchomić source /ENV/bin/./activate i powinieneś być w stanie poprawnie aktywować virtualenv.

Lokendra
źródło
0

1 - otwórz PowerShell i przejdź do folderu aplikacji 2 - wprowadź folder virtualenv np .: cd. \ Venv \ Scripts \ 3 - active virtualenv według typu. \ Aktywuj

aly
źródło