ve Windows mám nainstalovaný python 3.7 a stále se mi nepodařilo aktivovat virtualenv
z Gitbash s ./Scripts/activate
ačkoli to fungovalo z Powershell po spuštění Set-ExecutionPolicy Unrestricted
v Powershell a změňte nastavení na „Ano všem“.
Nemám rád Powershell a rád používám Gitbash, takže pro aktivaci virtualenv
v Gitbash nejprve přejděte do složky projektu, použijte ls
zobrazit obsah složky a ujistěte se, že vidíte "Skripty". Změňte adresář na "Scripts" pomocí cd Scripts
, jakmile jste v cestě "Skripty", použijte . activate
pro aktivaci virtualenv
. Nezapomeňte na mezeru za tečkou.
Ano, v podstatě to je to, co virtualenv dělá, a to je to, co activate
příkaz je pro, z dokumentu zde:
aktivovat skript
V nově vytvořeném virtualenv bude skript bin/activate shell nebo dávkový soubor Scripts/activate.bat ve Windows.
Tím se změní vaše $PATH tak, aby ukazovala na virtualenv bin/adresář. Na rozdíl od workingenv to je vše, co dělá; je to pohodlí. Ale pokud použijete úplnou cestu jako/cesta/k/env/bin/python script.py, nemusíte nejprve aktivovat prostředí. Musíte použít zdroj, protože mění prostředí na místě. Po aktivaci prostředí můžete pomocí funkce deaktivovat vrátit změny zpět.
Aktivační skript také upraví vaši výzvu shellu tak, aby indikovala, které prostředí je aktuálně aktivní.
takže byste měli použít pouze activate
příkaz, který to vše udělá za vás:
> \path\to\env\bin\activate.bat
Obvykle virtualenv
vytváří prostředí v aktuálním adresáři. Pokud nemáte v úmyslu vytvořit virtuální prostředí v C:\Windows\system32
z nějakého důvodu bych pro prostředí použil jiný adresář.
Neměli byste si zahrávat s cestami:použijte activate
skript (v <env>\Scripts
), abyste zajistili, že spustitelný soubor a cesta Pythonu jsou specifické pro prostředí. Jakmile to uděláte, příkazový řádek se změní a označí prostředí. Poté stačí vyvolat easy_install a vše, co tímto způsobem nainstalujete, se nainstaluje do tohoto prostředí. Použijte deactivate
aby se vše vrátilo do stavu před aktivací.
Příklad:
c:\Temp>virtualenv myenv
New python executable in myenv\Scripts\python.exe
Installing setuptools..................done.
c:\Temp>myenv\Scripts\activate
(myenv) C:\Temp>deactivate
C:\Temp>
Všimněte si, že jsem nemusel zadávat cestu pro deactivate
- activate
dělá to za vás, takže po aktivaci "Python" spustí Python ve virtualenv, nikoli váš systémový Python. (Vyzkoušejte to – proveďte import sys; sys.prefix
a měl by vytisknout kořen vašeho prostředí.)
Chcete-li přepínat mezi prostředími/projekty, stačí aktivovat nové prostředí, ale budete muset zadat celou cestu pro activate
takže ví, jaké prostředí aktivovat. Nikdy byste neměli mít potřebu si přímo zahrávat s PATH nebo PYTHONPATH.
Pokud používáte Windows Powershell, můžete využít výhod wrapperu. V systému Linux virtualenvwrapper
(odkaz ukazuje na port tohoto do Powershell) oživuje s virtualenv
ještě jednodušší.
Aktualizace: Není to nesprávné, přesně, ale možná ne zcela v duchu virtualenv
. Můžete zvolit jiný přístup:například pokud nainstalujete Django a cokoli dalšího, co potřebujete pro svůj web do svého virtualenv, pak byste mohli pracovat ve svém projektovém adresáři (kde vyvíjíte svůj web) s aktivovaným virtualenv. Protože byl aktivován, váš Python by našel Django a cokoli dalšího, co byste snadno nainstalovali do virtuálního prostředí:a protože pracujete ve svém projektovém adresáři, vaše soubory projektu by byly viditelné i pro Python.
Další aktualizace: Měli byste být schopni používat pip
, distribute
místo setuptools
a jednoduše python setup.py install
s virtualenv
. Než do něj něco nainstalujete, ujistěte se, že jste prostředí aktivovali.