Zainstalowałem python3-virtualenv
na Lubuntu 15.1 przy użyciu oficjalnego pakietu Ubuntu apt-get install python3-virtualenv
. Oficjalna dokumentacja wskazuje, że prosty virtualenv .
w moim katalogu projektu powinien być wystarczający, aby utworzyć venv. To nic nie robi, bo which virtualenv
nic nie robi. (Nic z, which python-virtualenv
a which python3-virtualenv
także).
Informacja o pakiecie, po zainstalowaniu, mówi, że została zainstalowana /usr/lib/python3/dist-packages/virtualenv.py
, więc wywołuję to pod python3. Daje mi to:
$ python3 /usr/lib/python3/dist-packages/virtualenv.py .
Running virtualenv with interpreter /usr/bin/python2
New python executable in ./bin/python2
Also creating executable in ./bin/python
Installing setuptools, pip...done.
Tak, kiedy patrzę, wszystko w ./bin to python2. Czy ubhonu's python3-virtualenv jest atrapą pakietu dla python2?
Oficjalna dokumentacja Pythona mówi, że należy użyć innego pakietu: python3-venv . To wydaje się działać, gdy ja pyvenv .
, z python3 rzeczy w ./bin
katalogu.
Jak mogę pomyślnie utworzyć virtualenv Python 3?
źródło
Odpowiedzi:
venv
jest wygodnym skryptem do tworzenia wirtualnych środowisk, ale nie w pełni zastępuje wszystko, covirtualenv
można zrobić. Jednak użycie obu jest w większości przypadków w porządku.virtualenv
nie jest przestarzały.python3 -m venv
działa po instalacji,python3-venv
ponieważ Debian usuwa niektóre skrypty z podstawowego pakietu Pythona. z jakiegoś powodupython3-virtualenv
nie umieszczavirtualenv
skryptu na twojej ścieżce, alepython-virtualenv
działa i będzie działać dobrze dla każdej wersji.Nie ma znaczenia, dla której wersji
virtualenv
jest zainstalowana, może generować env dla każdej zainstalowanej wersji, przekazując-p pythonX
(gdzie X jest wersją).venv
, ponieważ jest prostszy, utworzy tylko envv wersji, z której jest uruchomiony, i jest dostępny tylko od wersji 3.3.źródło