Ved hjelp av virtualenv kjører jeg prosjektene mine med standardversjonen av Python (2.7). På ett prosjekt må jeg bruke Python 3.4.
Jeg brukte brew install python3
for å installere den på min Mac. Nå, hvordan oppretter jeg en virtualenv som bruker den nye versjonen?
f.eks. sudo virtualenv envPython3
Hvis jeg prøver:
virtualenv -p python3 test
Jeg får:
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
rett og slett kjøre
virtualenv -p python3 envname
Oppdater etter OP's redigering:
Det var en feil i OP&# 39s versjon av virtualenv, som beskrevet her. Problemet ble løst ved å kjøre:
pip install --upgrade virtualenv
Python 3 har innebygd støtte for virtuelle miljøer - venv. Det kan være bedre å bruke det i stedet. Henviser til dokumentasjonen:
Opprettelse av virtuelle miljøer gjøres ved å utføre pyvenv skriptet:
pyvenv /path/to/new/virtual/environment
(bane/til/nyt/virtuelt/miljø)
Oppdatering for Python 3.6 og nyere:.
Som pawciobiel riktig kommentarer, pyvenv
er utdatert fra Python 3.6 og den nye måten er:
python3 -m venv /path/to/new/virtual/environment
I tillegg til de andre svarene anbefaler jeg at du sjekker hvilken forekomst av virtualenv du kjører:
which virtualenv
Hvis dette dukker opp noe i / usr/local/bin, er det mulig - til og med sannsynlig - at du installerte virtualenv (muligens ved hjelp av en forekomst av easy_tools eller pip) uten å bruke systemets pakkebehandling (brygge i OPs tilfelle). Dette var mitt problem.
For mange år siden - da jeg var enda mer uvitende - hadde jeg installert virtualenv, og det maskerte systemets pakke-leverte virtualenv.
Etter å ha fjernet denne gamle, ødelagte virtualenv, forsvant problemene mine.