Korzystając z virtualenv , uruchamiam moje projekty z domyślną wersją Pythona (2.7). W jednym projekcie muszę użyć Pythona 3.4.
Kiedyś brew install python3
instalowałem go na komputerze Mac. Teraz, jak utworzyć virtualenv, który korzysta z nowej wersji?
np. sudo virtualenv envPython3
Jeśli spróbuję:
virtualenv -p python3 test
Dostaję:
Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/usr/local/Cellar/python3/3.4.0_1/Frameworks/Python.framework/Versions/3.4'
New python executable in test/bin/python3.4
Also creating executable in test/bin/python
Failed to import the site module
Traceback (most recent call last):
File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/site.py", line 67, in <module>
import os
File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/os.py", line 634, in <module>
from _collections_abc import MutableMapping
ImportError: No module named '_collections_abc'
ERROR: The executable test/bin/python3.4 is not functioning
ERROR: It thinks sys.prefix is '/Users/user/Documents/workspace/test' (should be '/Users/user/Documents/workspace/test/test')
ERROR: virtualenv is not compatible with this system or executable
python
python-3.x
virtualenv
Prometeusz
źródło
źródło
Odpowiedzi:
po prostu biegnij
Zaktualizuj po edycji OP:
Wystąpił błąd w wersji virtualenv OP, jak opisano tutaj . Problem został rozwiązany przez uruchomienie:
źródło
virtualenv -p $(which python3) envname
virtualenv -p python3 my_virtual_env
,python3
jest dostępna z zewnątrz środowiska wirtualnego również?bin
,lib
,include
,local
ishare
katalogi w katalogu głównym twojego projektu. 2. W uruchomieniu terminala:virtualenv -p python3 .
który inicjuje nową wirtualną wersję Python3 w bieżącym katalogu.Python 3 ma wbudowaną obsługę środowisk wirtualnych - venv . Zamiast tego lepiej byłoby użyć tego. Odnosząc się do dokumentów:
Aktualizacja dla Python 3.6 i nowszych:
Jak poprawnie komentuje pawciobiel , jest przestarzały od Pythona 3.6, a nowy sposób to:
pyvenv
źródło
python3 -m venv /path/v3
ponieważ skrypt pyvenv jest przestarzały od wersji Python 3.6.python3 -m venv /path/v3
tutaj błędy.Error: Command '['/path/v3/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit
Czy coś brakuje? Dzięki tej--without-pip
opcji przynajmniej tworzy venv z poprawnie aktywowanymi / dezaktywowanymi skryptami.Próbowałem już pyenv i jest to bardzo przydatne do przełączania wersji Pythona (globalne, lokalne w folderze lub w virtualenv):
następnie zainstaluj żądaną wersję Pythona:
i po prostu utwórz virtualenv ze ścieżką do wymaganej wersji interpretera:
To jest to, sprawdź wersję:
Istnieje również wtyczka do pyenv pyenv-virtualenv, ale jakoś mi to nie działało.
źródło
Zainstaluj wymagania wstępne.
Utwórz środowisko wirtualne oparte na języku Python3. Opcjonalnie włącz
--system-site-packages
flagę.Ustawiony w środowisku wirtualnym.
Zainstaluj inne wymagania za pomocą
pip
menedżera pakietów.Podczas pracy nad wieloma projektami Pythona jednocześnie zaleca się instalowanie wspólnych pakietów, takich jak
pdbpp
globalnie, a następnie ponowne użycie ich w virtualenvs.Zastosowanie tej techniki pozwala zaoszczędzić dużo czasu na pobieraniu pakietów i instalowaniu ich, oprócz zajmowania minimalnego miejsca na dysku i przepustowości sieci.
Szczegółowe instrukcje Django
Jeśli istnieje wiele systemowych pakietów Pythona, zaleca się, aby nie używać
--system-site-packages
flagi, szczególnie podczas programowania, ponieważ zauważyłem, że spowalnia to znacznie uruchamianie Django. Zakładam, że inicjalizacja środowiska Django polega na ręcznym skanowaniu i dołączaniu wszystkich pakietów witryn ze ścieżki systemowej, co może być przyczyną. Nawetpython manage.py shell
staje się bardzo wolny.Powiedziawszy ten eksperyment, która opcja działa lepiej. Może być bezpiecznie pominąć
--system-site-packages
flagę dla projektów Django.źródło
apt-get
alebrew
)pracował dla mnie.
źródło
The executable python3 (from --python=python3) does not exist
: co byś zrobił? Chciałem zaparzyć Isntall Python3, ale nie byłem pewien, czy to dobry pomysł, czy też mój system pomyliłby się, której wersji Python używamMożesz określić konkretną wersję Pythona podczas tworzenia środowiska.
Jest wspomniany w virtualenv.py
W niektórych przypadkach musi to być pełna ścieżka do pliku wykonywalnego:
Jak
-p
działaźródło
Miałem tę samą
ERROR
wiadomość. Rozwiązanie tbrisker nie działało w moim przypadku. Zamiast tego rozwiązało to problem:źródło
To wszystko, czego potrzebujesz, aby uruchomić środowisko wirtualne w python / python3
Najpierw, jeśli
virtualenv
nie jest zainstalowany, uruchomTeraz uruchom:
Kiedyś cmd
virtualenv
kończy się niepowodzeniem, jeśli tak, użyj tego:Teraz aktywuj wirtualną env:
Lub:
Teraz biegnij
Powinieneś zobaczyć pełną ścieżkę do swojego katalogu i
<env_name>/bin/python
sufiksuAby wyjść z virtualenv, uruchom:
źródło
Python ma teraz własną implementację środowiska wirtualnego o nazwie „venv”. Sugerowałbym użycie tego zamiast virtualenv.
Cytowanie z Venv - Docs ,
W systemie Windows, aby zainicjować venv w jakimś projekcie, otwórz cmd:
(Sugeruje użycie podwójnego cudzysłowu wokół ścieżki katalogu, jeśli zawiera spacje. Np .: „C: / My Dox / Spaced Directory / Something”)
Po skonfigurowaniu venv zobaczysz w folderze projektu kilka nowych folderów. Jednym z nich byłyby „Skrypty”.
Aby aktywować lub wywołać venv potrzebujesz:
Możesz dezaktywować środowisko wirtualne, wpisując „dezaktywuj” w swojej powłoce. Dzięki temu możesz teraz zainstalować biblioteki specyficzne dla twojego projektu, które będą znajdować się w folderze „Lib”.
================================ Edytuj 1 ================ ==================== Scenariusz, który zostanie omówiony poniżej, nie jest tym, o co pierwotnie pytano, wystarczy dodać to na wypadek, gdyby ktoś używał vscode z rozszerzeniem Pythona
W przypadku użycia kodu vs z rozszerzeniem Pythona możesz napotkać problem z pylintem, który wskazuje na instalację globalną. W takim przypadku pylint nie będzie mógł zobaczyć modułów zainstalowanych w środowisku wirtualnym, a zatem wyświetli błędy podczas importowania.
Oto prosta metoda na obejście tego.
Zasadniczo najpierw aktywujemy środowisko, a następnie wywołujemy vs-code, aby pylint zaczął się w środowisku i mógł zobaczyć wszystkie lokalne pakiety.
źródło
virtualenv
do codziennego korzystania ze środowisk wirtualnych (workon
itp.), Ale w celu niezawodnego tworzenia nowych środowisk wirtualnychpython3.x
jest to jedyny sposób, który okazał się skuteczny.Oprócz innych odpowiedzi, polecam sprawdzenie, które wystąpienie virtualenv wykonujesz:
Jeśli pojawi się coś w / usr / local / bin, możliwe jest - nawet prawdopodobne - że zainstalowałeś virtualenv (możliwe, że używasz instancji easy_tools lub pip) bez użycia menedżera pakietów systemu (w przypadku OP). To był mój problem.
Lata temu - kiedy byłem jeszcze bardziej nieświadomy - zainstalowałem virtualenv i maskowało to dostarczone przez mój pakiet virtualenv.
Po usunięciu tego starego, zepsutego virtualenv moje problemy zniknęły.
źródło
W python3.6 próbowałem
python3 -m venv myenv
, zgodnie z dokumentacją, ale trwało to tak długo. Więc bardzo proste i szybkie polecenie brzmi:python -m venv yourenv
działało dla mnie na python3.6.źródło
Na komputerze Mac musiałem wykonać następujące czynności, aby to zadziałało.
źródło
which python2.7
lubwhich python3.5
lubwhich python3.6
, a następnie zamień about--python=DIRECTORY
Jeśli zainstalujesz python3 (
brew install python3
) wraz z virtualenv burrito , możesz to zrobićmkvirtualenv -p $(which python3) env_name
Oczywiście wiem, że virtualenv burrito to tylko opakowanie, ale przez lata służyło mi dobrze, zmniejszając niektóre krzywe uczenia się.
źródło
virtualenv --python=/usr/local/bin/python3 <VIRTUAL ENV NAME>
spowoduje to dodanie ścieżki python3 do wirtualnego środowiska.źródło
To zadziałało dla mnie
źródło
Dla tych, którzy mają problemy podczas pracy z Anaconda3 (Python 3).
Możesz użyć
Aby aktywować środowisko (Linux, MacOS)
Dla Windowsa
źródło
Próbowałem wszystkich powyższych rzeczy, to wciąż nie działało. Więc jako brutalna siła, właśnie ponownie zainstalowałem anakondę, ponownie zainstalowałem virtualenv ... i zadziałało.
źródło
Chciałem zachować Python 2.7.5 jako domyślną wersję na Centos 7, ale mam Python 3.6.1 w środowisku wirtualnym działającym wraz z innymi środowiskami wirtualnymi w Python 2.x
Znalazłem poniższy link najlepsze rozwiązanie dla najnowszej wersji Pythona (python 3.6.1) https://www.digitalocean.com/community/tutorial_series/how-to-install-and-set-up-a-local-programming -environment-for-python-3 . Pokazuje kroki dla różnych platform, ale podstawowe kroki są
źródło
Poniższe proste polecenia mogą utworzyć wirtualną env w wersji 3.5
jeśli chcesz wirtualną wersję env jako 3.6
źródło
Dla tych z Was, którzy używają pipenv i chcą zainstalować konkretną wersję:
źródło
Wystąpił ten sam błąd, ponieważ jest to konflikt z instalacją miniconda3, więc kiedy wpiszesz „która virtualenv” i jeśli zainstalowałeś minicondę i wskazuje ona na tę instalację, możesz ją usunąć (jeśli podoba mi się to i nie przeprowadziłeś się jeszcze)) lub zmień zmienną środowiskową, aby wskazywała instalację, którą chcesz.
źródło
W wierszu poleceń systemu Windows następujące działało dla mnie. Najpierw dowiedz się, gdzie znajdują się pliki wykonywalne Pythona:
Spowoduje to wyświetlenie ścieżek do innego pliku python.exe w systemie. Oto moje:
Tak więc dla Python3 była to pierwsza ścieżka dla mnie, więc przechodzę do folderu głównego aplikacji, w którym chcę utworzyć folder środowiska wirtualnego. Następnie uruchamiam następujące, które zawiera ścieżkę do mojego pliku wykonywalnego Python3, nadając mojemu środowisku wirtualnemu nazwę „venv”:
Następnie aktywuj środowisko wirtualne:
Na koniec zainstaluj zależności dla tego środowiska wirtualnego:
To wymagania.txt można wypełnić ręcznie, jeśli znasz biblioteki / moduły potrzebne dla Twojej aplikacji w środowisku wirtualnym. Jeśli aplikacja działała w innym środowisku, możesz automatycznie tworzyć zależności, uruchamiając następujące czynności (przejdź do folderu aplikacji w środowisku, w którym działa):
Następnie, gdy masz plik wymagania.txt, który został „zamrożony”, możesz zainstalować wymagania na innym komputerze lub w czystym środowisku, korzystając z następujących elementów (po zapisaniu dysku CD w folderze aplikacji):
Aby zobaczyć swoją wersję Pythona w środowisku wirtualnym, uruchom:
W takim razie voila ... Twój Python3 działa w środowisku wirtualnym. Wyjście dla mnie:
źródło