Mam obecnie system Debian z Pythonem 2.5.4. Mam wirtualnie zainstalowaną poprawnie, wszystko działa dobrze. Czy istnieje możliwość, że mogę użyć virtualenv z inną wersją Pythona?
Skompilowałem Python 2.6.2 i chciałbym go używać z niektórymi virtualenv. Czy wystarczy zastąpić plik binarny? Czy muszę coś zmienić w stosunku do bibliotek?
Odpowiedzi:
Wystarczy użyć opcji
--python
(lub krótkiej-p
) podczas tworzenia instancji virtualenv, aby określić plik wykonywalny Pythona, którego chcesz użyć, np .:NB W przypadku Python 3.3 lub nowszego, patrz odpowiedź Aelfinn poniżej.
źródło
virtualenv -p `which python2.6` <path/to/new/virtualenv>
Od wersji Python 3 Dokumenty Python sugerują utworzenie środowiska wirtualnego za pomocą następującego polecenia:
Pamiętaj, że
venv
nie zezwala na tworzenie środowisk wirtualnych z innymi wersjami Pythona. W tym celu zainstaluj i użyjvirtualenv
pakietu .Nieaktualne informacje
pyvenv
Skrypt może być wykorzystywane do tworzenia wirtualnego środowiskaale jest przestarzałe od Pythona 3.6.
źródło
python3 -m venv <envname>
aby nie trzeba było używać skryptów pośredniczących do wszystkiego.pyvenv
skrypt jest przestarzały w Pythonie 3.6+, chociażvenv
sam moduł nie jest. Więc użyjpython 3 -m venv <myenvname>
jak mówi @PaulEveritt.pyvenv
lubpython3 -m venv ...
NIE instalujpython-config
skryptu. Oznacza to, że nawet po aktywacji środowiska Python3, systempython-config
zostanie wywołany z mylącymi konsekwencjami. Zobacz ten raport o błędach z 2011 r. Github.com/pypa/virtualenv/issues/169 i moje pytanie stackoverflow.com/questions/42020937/...venv
nie zezwala na tworzenie virtualenv z innymi wersjami Pythona.” - Jesteś pewien, że to prawda? Wydaje mi się, że działa dobrze, jeśli utworzę go z określoną wersją Pythona, np.python3.5 -m venv <myenvname>
( Pod warunkiem, że mam dostępną wersję Pythona).venv
określonej wersji języka Python jest użycie tej wersji podczas jej konfigurowania. Na przykład:python3.5 -m venv venv
Są to kroki, które możesz wykonać, gdy jesteś we współdzielonym środowisku hostingowym i musisz zainstalować i skompilować Pythona ze źródła, a następnie utworzyć
venv
ze swojej wersji Pythona. Dla Python 2.7.9. zrobiłbyś coś w ten sposób:wirtualna środowisko
Oczywiście może to mieć zastosowanie w każdej sytuacji, w której chcesz replikować dokładne środowisko, w którym pracujesz i wdrażasz.
źródło
~/.localpython/bin/virtualenv
zamiast samejvirtualenv
instalacji, aby zakończyć bez błędów. Ponadto użyjsource ve/bin/activate
zamiastsource activate
.źródło
-p
.python3.6
ale nie chcesz dotykaćpython3.5
zainstalowanego na komputerze?Jest łatwiejszy sposób,
Dzięki komentarzowi działa to tylko wtedy, gdy masz Python2.7 zainstalowany na poziomie systemu (np. /Usr/bin/python2.7).
W przeciwnym razie, jeśli używasz homebrew, możesz użyć ścieżki, aby dać ci to, czego chcesz.
Możesz znaleźć ścieżkę do instalacji Pythona za pomocą
Będzie to również działać z Pythonem 3.
Ostatecznie kondensuje się do:
źródło
virtualenv venv --python=python3.6
tak dobrzevirtualenv env --python=python2
virtualenv venv --python=<insert_your_python_version_here>
gdzie<insert_your_python_version_here>
było w moim przypadkuC:\Python\Python368\python.exe
W systemie Windows działa to dla mnie:
bez
python.exe
mamWindowsError: [Error 5] Access is denied
Mam Python2.7.1 zainstalowany z virtualenv 1.6.1 i chciałem Python 2.5.2.źródło
Mac OSX 10.6.8 (Snow Leopard):
1) Gdy to zrobisz
pip install virtualenv
, polecenie pip jest powiązane z jedną z wersji Pythona ivirtualenv
instalowane w tej wersji Pythona. Możesz to zrobićaby zobaczyć, która to wersja Pythona. Jeśli widzisz coś takiego:
następnie wykonaj:
Możesz zobaczyć wersję python na wyjściu.
Domyślnie będzie to wersja Pythona używana w każdym nowym środowisku, które utworzysz. Możesz jednak określić dowolną wersję Pythona zainstalowaną na twoim komputerze, aby używać jej w nowym środowisku za pomocą
-p flag
:http://docs.python-guide.org/en/latest/dev/virtualenvs/
virtualenv
po prostu kopiuje pytona z lokalizacji na twoim komputerze do nowo utworzonego katalogu my_env / bin /.2) Python systemowy jest włączony
/usr/bin
, podczas gdy różne wersje Pythona, które zainstalowałem, były domyślnie zainstalowane w:3) Różne pytony, które zainstalowałem, mają nazwy takie jak
python2.7
ipython3.2
, i mogę używać tych nazw zamiast pełnych ścieżek.======== VIRTUALENVWRAPPER =========
1) Miałem pewne problemy z uruchomieniem programu virtualenvwrapper. Właśnie to skończyłem wprowadzając
~/.bash_profile
:2)
-p option
Działa inaczej z virtualenvwrapper: Muszę podać pełną ścieżkę do interpretera Pythona, który będzie używany w nowym środowisku (kiedy nie chcę używać domyślnej wersji Pythona):W przeciwieństwie do virtualenv, virtualenvwrapper utworzy środowisko w miejscu określonym przez zmienną środowiskową $ WORKON_HOME. Dzięki temu wszystkie środowiska są w jednym miejscu.
źródło
which pip
nie mówi mi o wersji Pythona. Daje mi to-/usr/local/bin/pip
./usr/local/bin
i robisz$ ls -al pip
, powinieneś zobaczyć coś takiego:pip -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pip
mkproject
jest to polecenie, którego należy użyć, jeśli chcesz utworzyć zarówno katalog projektu, jak i środowisko wirtualne dla danej wersji Pythona.mkproject -p /usr/bin/python3.6 myNewPython36Project
Te dwa polecenia powinny działać poprawnie.
virtualenv -p python2 myenv
(Dla python2)virtualenv -p python3 myenv
(Dla python3)źródło
Załóżmy, że masz obecnie zainstalowanego Pythona 2.7 w virtualenv. Ale chcesz z tego skorzystać
python3.2
, musiałbyś zaktualizować to o:Następnie aktywuj virtualenv przez:
a następnie wykonaj:
python --version
w powłoce, aby sprawdzić, czy Twoja wersja jest teraz zaktualizowana.źródło
-p
.Możesz dzwonić
virtualenv
z dowolną wersją Pythona. Na przykład:Lub alternatywnie bezpośrednio wskaż ścieżkę virtualenv. np. dla systemu Windows:
I uruchamiając:
możesz zobaczyć wersję Pythona zainstalowaną w środowisku wirtualnym
źródło
pip3 install virtualenv
pierwszyThe
-p
Podejście działa dobrze, ale trzeba pamiętać, aby używać go za każdym razem. Jeśli Twoim celem jest ogólnie przejście na nowszą wersję Pythona, jest to uciążliwe i może również prowadzić do błędów.Inną opcją jest ustawienie zmiennej środowiskowej, która robi to samo co
-p
. Ustaw to za pomocą~/.bashrc
pliku lub wszędzie tam, gdzie zarządzasz zmiennymi środowiskowymi dla sesji logowania:Następnie
virtualenv
użyje tego za każdym razem, gdy nie określisz-p
go w wierszu poleceń.źródło
export VIRTUALENVWRAPPER_PYTHON=/path/to/desired/version
dla dokumentów virtualenvwrapper nie działało, ale to rozwiązanie działało?virtualenvwrapper
używa Python podczas uruchamiania, nie ma to nic wspólnego z instalacjami.Jeszcze łatwiejsze, używając podstawiania poleceń, aby znaleźć dla Ciebie python2:
virtualenv -p $(which python2) <path/to/new/virtualenv/>
Lub podczas korzystania z virtualenvwrapper:
mkvirtualenv -p $(which python2) <env_name>
źródło
W systemie Mac (High Sierra) zainstaluj virtualenv na python3 i utwórz virtualenv dla python2:
źródło
python3 -m pip install virtualenv
Na Macu używam pyenv i virtualenvwrapper. Musiałem stworzyć nowy virtualenv. Potrzebujesz homebrew, który założę, że zainstalowałeś, jeśli używasz komputera Mac, ale dla zabawy:
Najpierw zamroziłem również moje wymagania, aby móc po prostu zainstalować ponownie w nowej wersji virtualenv za pomocą:
źródło
mkvirtualenv -p ~/.pyenv/versions/2.7.10/bin/python {virtual_env_name}
wersje, a nie wersja. Jeśli SO pozwala na krótkie zmiany, naprawiłbym to.pyenv
zawiera obsługę virtualenv za pośrednictwempyenv-virtualenv
wtyczki, więc uważam, że tak naprawdę nie potrzebuję virtualenvwrapper. Więcej szczegółów w mojej odpowiedzi na pyenv .[Listopad 2019] Musiałem zainstalować środowisko Python 3.7 (env) w moim systemie Arch Linux opartym na Python 3.8. Python 3.7 nie był już w systemie, więc nie mogłem obniżyć wersji Pythona, aby zainstalować pakiet, którego potrzebowałem.
Ponadto chciałem użyć tego pakietu / Pythona 3.7 w środowisku wirtualnym (venv). Tak to zrobiłem.
Pobierz pliki źródłowe wersji Python:
Pobrałem pliki źródłowe Python 3.7.4
do
/mnt/Vancouver/apps/python_versions/src/Python-3.7.4.tgz
Następnie wyodrębniłem to archiwum (pliki źródłowe) do
/mnt/Vancouver/apps/python_versions/src/Python-3.7.4/
Instalacja:
[Uwaga: w moim systemie env, a nie venv.]
Sprawdź zainstalowane wersje Pythona:
Jak utworzyć venv dla określonej wersji Pythona:
Utwórz Venv Python 3.7 [na env / systemie operacyjnym Python 3.8]:
Dodano do
~/.bashrc
:Test Venv Python 3.7:
źródło
W podsystemie Windows dla systemu Linux:
Utwórz środowisko dla python3:
Aktywuj to:
źródło
W systemie Windows:
lub
To używa programu
py
uruchamiającego, który znajdzie odpowiedni plik wykonywalny Pythona dla ciebie (zakładając, że masz go zainstalowany).źródło
Tak , powyższe odpowiedzi są prawidłowe i działa poprawnie na systemach Unix, takich jak Linux i MAC OS X .
Próbowałem utworzyć virtualenv dla Python2 i Python3 za pomocą następujących poleceń.
Tutaj użyłem venv2 i venv3 jako nazwy odpowiednio dla Python2 i Python3 .
źródło
To zadziałało dla mnie
źródło
Używam pyenv do zarządzania moją wersją Pythona.
Sprawdź swoją wersję Pythona:
Utwórz wirtualne środowisko za pomocą venv :
Następnie aktywuj środowisko wirtualne:
Sprawdź swoją wersję Pythona:
Może być konieczne usunięcie poprzedniego środowiska wirtualnego
źródło
Te wydają się nieco skomplikowane w przypadku systemu Windows. Jeśli korzystasz z systemu Windows w Pythonie 3.3 lub nowszym, możesz użyć programu uruchamiającego Python,
py
aby to zrobić o wiele łatwiej. Po prostu zainstaluj inną wersję Pythona, a następnie uruchom:Spowoduje to utworzenie środowiska wirtualnego o nazwie
env
w bieżącym katalogu przy użyciu języka Python[my version]
. Jako przykład:Tworzy to środowisko wirtualne o nazwie
env
przy użyciu python3.7 i aktywuje je. Nie wymaga ścieżek ani innych skomplikowanych rzeczy.źródło
py -3.7 -m venv env
zamiast tego nie powinno być (-m
brakuje)?Link do tworzenia virtualenv
źródło
Dla systemów Debian (debian 9) w 2019 roku odkryłem proste rozwiązanie, które może rozwiązać problem z poziomu środowiska wirtualnego.
Załóżmy, że środowisko wirtualne zostało utworzone za pomocą:
ale ma tylko wersje
python2
ipython2.7
potrzebujesz najnowszych funkcji python3.7.Następnie wystarczy uruchomić polecenie:
doda pakiety python3.7, jeśli są już dostępne w twoim systemie.
źródło
To był błąd z virtualenv. Po prostu aktualizacja twojego pipa powinna być poprawką.
pip install --upgrade virtualenv
źródło
Jak już wspomniano w wielu odpowiedziach, użycie virtualenv jest czystym rozwiązaniem. Jednak małą pułapką, o której wszyscy powinni wiedzieć, jest to, że jeśli w bash_aliases ustawiony jest alias dla Pythona, taki jak:
ten alias będzie również używany w środowisku wirtualnym. Tak więc w tym scenariuszu działanie
python -V
w wirtualnej env będzie zawsze generowane3.6
niezależnie od tego, jakiego interpretera używa się do stworzenia środowiska:źródło
Działa dla mnie w systemie Windows z instalacją Pythona 2:
W ten sposób stworzyłem środowisko wirtualne Python 3 w mojej istniejącej instalacji Python 2.
źródło
Możesz to zrobić, wykonując następujące czynności:
źródło
Tak, wystarczy zainstalować inną wersję Pythona i zdefiniować lokalizację swojej innej wersji Pythona w swoim poleceniu, np .:
źródło
Oto krok po kroku, jak utworzyć środowisko wirtualne w folderze Visual Studio Code: Użyłem programu PowerShell (tryb administratora):
1. Tworzę folder VSCode - „D: \ Code_Python_VE”, w którym chcę utworzyć środowisko wirtualne.
2. Następnie wpisuję polecenie - „pip3 install virtualenv”. (D: \ Code_Python_VE> pip3 install virtualenv) 3. D: \ Code_Python_VE> python3 -m venv project_env
4. D: \ Code_Python_VE> project_env \ Scripts
\ Activ.bat 5. D: \ Code_Python_VE> ls - Spowoduje to wyświetlenie nowego katalog „project_env”.
6. D: \ Code_Python_VE> kod. Spowoduje to uruchomienie programu Visual Studio Code. Upewnij się, że polecenie to (kod.).
7. Utwórz launch.jason z następującą zawartością:
(Wyszukaj, jak przejść do okna debugowania i dodaj nową konfigurację w kodzie VS).
(project_env) d: \ Code_Python_VE> python -m pip install - upgrade
Mam nadzieję, że to pomoże.
źródło
UBUNTU 19.04 / Global Python 3.7.
To działało dla mnie, umożliwiając środowisko Python 3.8 przy użyciu zalecanego venv dla rozwoju Python 3.
Zainstaluj moduł Venv 3.8 i 3.8
$ sudo apt install python3.8 python3.8-venv ## oraz wszelkie inne potrzebne moduły
Utwórz wirtualne środowisko przy użyciu wersji python, którą chcesz w tej środowisku
$ /usr/bin/python3.8 -m venv python38-env
przejdź do wirtualnego środowiska
$ source python38-env / bin / aktywuj
python -V = python 3.8
źródło