GNU/Linux >> Znalost Linux >  >> Linux

Otázky Python virtualenv

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.


Linux
  1. Převod kódu Python 2 na Python 3

  2. Nainstalujte python-novaclient na Windows

  3. Nastavte Python na IIS 7.5

  1. Nainstalujte tkinter pro Python

  2. Virtualenv používá nesprávný python, i když je první v $PATH

  3. Aktualizujte python na linuxu 2.7 až 3.5

  1. Jak nainstalovat Python na Linux

  2. Instalace Pythonu 3.3.2?

  3. Upgradujte Python z 2.6 na 2.7 na Centos 6.5