Używanie Pythona 3 w virtualenv
Używając virtualenv , uruchamiam moje projekty z domyślną wersją Pythona (2.7). W jednym projekcie muszę użyć Pythona 3.4.
Użyłem brew install python3
, aby zainstalować go na moim komputerze Mac. Jak utworzyć virtualenv, który używa nowej wersji?
Np. sudo virtualenv envPython3
Jeśli spróbuję:
virtualenv -p python3 test
Otrzymuję:
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
19 answers
Po prostu uruchom
virtualenv -p python3 envname
Update after op ' s edit:
Wystąpił błąd w wersji virtualenv OP, jak opisano tutaj . Problem został rozwiązany przez uruchomienie:
pip install --upgrade virtualenv
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-24 09:39:10
Python 3 posiada wbudowaną obsługę środowisk wirtualnych - venv . Lepiej byłoby użyć tego zamiast tego. Odnosi się do docs:
Tworzenie wirtualnych środowisk odbywa się poprzez wykonanie pyvenv skrypt:
pyvenv /path/to/new/virtual/environment
Aktualizacja dla Pythona 3.6 i nowszych:
Jako pawciobiel poprawnie komentarze, pyvenv
jest przestarzałe od Pythona 3.6, A nowy sposób to:
python3 -m venv /path/to/new/virtual/environment
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:47
Wymagania wstępne instalacji.
sudo apt-get install python3 python3-pip virtualenvwrapper
Utwórz wirtualne środowisko oparte na Python3. Opcjonalnie włącz flagę --system-site-packages
.
mkvirtualenv -p /usr/bin/python3 <venv-name>
Ustawić w środowisku wirtualnym.
workon <venv-name>
Zainstaluj inne wymagania używając menedżera pakietów pip
.
pip install -r requirements.txt
pip install <package_name>
Podczas pracy nad wieloma projektami Pythona jednocześnie, zwykle zaleca się instalowanie popularnych pakietów, takich jak pdbpp
globalnie, a następnie ponowne ich użycie w virtualenvs.
Użycie tej techniki oszczędza wiele czas spędzony na pobieraniu pakietów i ich instalowaniu, poza minimalnym zużyciem miejsca na dysku i przepustowości sieci.
sudo -H pip3 -v install pdbpp
mkvirtualenv -p $(which python3) --system-site-packages <venv-name>
Instrukcje specyficzne dla Django
Jeśli jest wiele systemowych pakietów Pythona, to zaleca się nie używać znacznika --system-site-packages
szczególnie podczas programowania, ponieważ zauważyłem, że spowalnia to uruchamianie Django. Zakładam, że inicjalizacja środowiska Django polega na ręcznym skanowaniu i dodawaniu wszystkich pakietów witryny ze ścieżki systemowej, która to może być powód. Nawet python manage.py shell
staje się bardzo powolny.
Po tym eksperymencie, która opcja działa lepiej. Może być bezpiecznie po prostu pominąć flagę --system-site-packages
dla projektów Django.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-10 09:40:10
Próbowałem pyenv i jest to bardzo przydatne do przełączania wersji Pythona (globalnej, lokalnej w folderze lub w virtualenv):
brew install pyenv
Następnie zainstaluj żądaną wersję Pythona:
pyenv install 3.5.0
I po prostu utwórz virtualenv ze ścieżką do wymaganej wersji interpretera:
virtualenv -p /Users/johnny/.pyenv/versions/3.5.0/bin/python3.5 myenv
To jest to, sprawdź wersję:
. ./myenv/bin/activate && python -V
Są też pluginy do pyenv pyenv-virtualenv ale jakoś mi nie wyszło.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-19 20:38:09
virtualenv --python=/usr/bin/python3 <name of env>
Zadziałało dla mnie.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-22 14:21:01
Możesz określić konkretne wersja Pythona podczas tworzenia środowiska.
Jest wymieniony w virtualenv.py
virtualenv --python=python3.5 envname
W niektórych przypadkach musi to być pełna ścieżka do pliku wykonywalnego:
virtualenv --python=/Users/username/.pyenv/versions/3.6.0/bin/python3.6 envname
Jak działa -p
parser.add_option(
'-p', '--python',
dest='python',
metavar='PYTHON_EXE',
help='The Python interpreter to use, e.g., --python=python3.5 will use the python3.5 '
'interpreter to create the new environment. The default is the interpreter that '
'virtualenv was installed with (%s)' % sys.executable)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-07 22:50:33
Miałem tę samą wiadomość. rozwiązanie tbriskera nie zadziałało w moim przypadku. Zamiast tego rozwiązało to problem:
$ python3 -m venv .env
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-11 01:59:32
Python jest teraz wyposażony w własną implementację środowiska wirtualnego o nazwie "venv". Sugerowałbym użycie tego, zamiast virtualenv.
Cytowanie z venv-docs ,
Przestarzałe od wersji 3.6: pyvenv był zalecanym narzędziem dla tworzenie środowisk wirtualnych dla Pythona 3.3 i 3.4 oraz jest przestarzały w Pythonie 3.6.
Zmienione w wersji 3.5: stosowanie venv jest teraz zalecane dla tworzenie wirtualnych środowisk.
Dla windows, aby zainicjować venv w jakimś projekcie, otwórz cmd:
python -m venv "c:\path\to\myenv"
(sugerowałoby użycie podwójnego cudzysłowu wokół ścieżki katalogu, jeśli zawiera spacje. Ex: "C:/My Dox / Spaced Directory / Something")
Po skonfigurowaniu venv, zobaczysz kilka nowych folderów w katalogu projektu. Jednym z nich byłyby "Skrypty".
Aby aktywować lub wywołać venv potrzebujesz:
C:\> <venv>\Scripts\activate.bat
Możesz dezaktywować środowisko wirtualne, wpisując "deactivate" w twoja skorupa. Dzięki temu jesteś teraz gotowy do zainstalowania bibliotek specyficznych 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, po prostu dodanie tego na wypadek, gdyby ktoś używał VSCode z rozszerzeniem Pythona
W przypadku, gdy używasz vs code z jego rozszerzeniem python, możesz napotkać problem z jego pylint, który wskazuje na globalny instalacja. W takim przypadku pylint nie będzie w stanie zobaczyć modułów zainstalowanych w środowisku wirtualnym, co spowoduje wyświetlenie błędów podczas importowania.
Tutaj {[7] } jest prostą metodą, aby o tym zapomnieć.
cd Workspace\Scripts
.\Activate.ps1
code .
Najpierw aktywujemy środowisko, a następnie wywołujemy vs-code, aby pylint zaczynał się w środowisku i mógł zobaczyć wszystkie lokalne Pakiety.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-26 13:37:19
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 jest
python -m venv yourenv
Zadziałało na python3. 6.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-09 02:54:35
Oprócz innych odpowiedzi, zalecam sprawdzenie, jaką instancję virtualenv wykonujesz:
which virtualenv
Jeśli pojawi się coś w /usr / local / bin, to jest możliwe - nawet prawdopodobne-że zainstalowałeś virtualenv (prawdopodobnie używając instancji easy_tools lub pip) bez użycia menedżera pakietów systemu (brew w przypadku OP). To był mój problem.
Lata temu - kiedy byłem jeszcze bardziej ignorantem-zainstalowałem virtualenv i maskowało to mój system pakiet-dostarczony virtualenv.
Po usunięciu tego starego, zepsutego virtualenv, moje problemy zniknęły.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-21 16:32:52
Na Macu musiałem wykonać następujące czynności, aby go uruchomić.
mkvirtualenv --python=/usr/bin/python3 YourEnvNameHere
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-07 14:45:39
Jeśli zainstalujesz python3 (brew install python3
) wraz z virtualenview , możesz wtedy wykonać mkvirtualenv -p $(which python3) env_name
Oczywiście, wiem, że virtualenview to tylko wrapper, ale dobrze mi służył przez lata, redukując kilka krzywych uczenia się.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-15 03:42:59
virtualenv --python=/usr/local/bin/python3 <VIRTUAL ENV NAME>
to doda python3
ścieżka dla Twojego wirtualnego środowiska.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-01 07:21:17
To działało dla mnie
virtualenv --no-site-packages --distribute -p /usr/bin/python3 ~/.virtualenvs/py3
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-09 07:11:29
Dla tych, którzy mają problemy podczas pracy z Anaconda3 (Python 3).
You could use
conda create -n name_of_your_virtualenv python=python_version
Aby aktywować środowisko (Linux, MacOS)
source activate name_of_your_virtualenv
Dla Windows
activate name_of_your_virtualenv
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-20 14:49:30
Próbowałem wszystkich powyższych rzeczy, nadal nie działa. Więc jako brutalna siła, właśnie ponownie zainstalowałem anacondę, ponownie zainstalowałem virtualenv... i zadziałało.
Amans-MacBook-Pro:~ amanmadan$ pip install virtualenv
You are using pip version 6.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting virtualenv
Downloading virtualenv-15.0.3-py2.py3-none-any.whl (3.5MB)
100% |████████████████████████████████| 3.5MB 114kB/s
Installing collected packages: virtualenv
Successfully installed virtualenv-15.0.3
Amans-MacBook-Pro:python amanmadan$ virtualenv my_env
New python executable in /Users/amanmadan/Documents/HadoopStuff/python/my_env/bin/python
Installing setuptools, pip, wheel...done.
Amans-MacBook-Pro:python amanmadan$
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-30 13:24:18
Chciałem zachować Pythona 2.7.5 jako domyślną wersję na Centos 7, ale mam Pythona 3.6.1 w środowisku wirtualnym działającym obok innych środowisk wirtualnych w Pythonie 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 are
- Zainstaluj python3.x (jeśli nie występuje) dla Twojej platformy
- Zainstaluj python3.x-devel dla Twojej platformy
- tworzenie środowiska wirtualnego w Pythonie 3.x (na przykład $ python3 .6-m venv_test_p3/ )
- Aktywuj testenvironment dla Pythona 3.x (na przykład źródło virenv_test_p3 / bin / activate)
- zainstaluj pakiety, których chcesz użyć w nowym środowisku wirtualnym python 3 i które są obsługiwane ( na przykład pip install Django==1.11.2)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-28 10:39:21
Mam ten sam błąd, ponieważ jest to konflikt z instalacją miniconda3, więc po wpisaniu "which virtualenv" i jeśli zainstalowałeś minicondę i wskazuje na tę instalację, możesz ją usunąć(jeśli lubisz mnie i nie przeniosłeś się do niej jeszcze) lub zmienić zmienną środowiskową, aby wskazać instalację, którą chcesz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-16 23:35:33
Dla tych z Was, którzy używają pipenv i chcą zainstalować konkretną wersję:
pipenv install --python 3.6
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-29 15:34:40