Utilisez Python 3 dans virtualenv

Cet article traduit de: Utilisation de Python 3 dans virtualenv

En utilisant virtualenv , j'exécute mes projets avec la version par défaut de Python (2.7). En utilisant virtualenv , j'utilise la version par défaut de Python (2.7) pour exécuter le projet. Sur un projet, j'ai besoin d'utiliser Python 3.4. Dans un projet, j'ai besoin d'utiliser Python 3.4.

Utilisé I brew install python3pour l'installer sur mon Mac. Je l' utilise brew install python3pour l' installer sur votre Mac. Maintenant, comment créer un virtualenv qui utilise la nouvelle version? Maintenant, comment créer un virtualenv qui utilise la nouvelle version ?

par exemple sudo virtualenv envPython3 例如 sudo virtualenv envPython3

Si j'essaye: Si j'essaye:

virtualenv -p python3 test

Je reçois: Je reçois:

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

# 1 étage

Référence: https://stackoom.com/question/1c2Zt/ utilisant Python dans virtualenv


# 2F

il suffit de lancer simplement exécuter

virtualenv -p python3 envname

Mise à jour après la modification de l'OP: Mise à jour après la modification de l'OP :

Le Un bug là les OP apos Version du virtualenv, comme décrit ici Wallpaper . Il y a un bug dans la version en virtualenv OP, comme décrit ici . Le problème a été résolu en exécutant: Le problème a été résolu en exécutant :

pip install --upgrade virtualenv

# 3 étage

A-3 intégré a Python support pour les environnements virtuels - venv . Python 3 a un environnement virtuel venv support intégré. Il serait peut-être préférable de l'utiliser à la place . Se référant aux documents :

La création d'environnements virtuels se fait en exécutant le script pyvenv: Créez un environnement virtuel en exécutant le script pyvenv :

pyvenv /path/to/new/virtual/environment

Mise à jour pour Python 3.6 et plus récent: Mises à jour pour Python 3.6 et plus récent :

Comme pawciobiel commente correctement , pyvenvest obsolète à partir de Python 3.6 et la nouvelle méthode est: Lorsque pawciobiel commente correctement , il n'est pas recommandé depuis Python 3.6 pyvenv, la nouvelle méthode est:

python3 -m venv /path/to/new/virtual/environment

# 4F

En plus des autres réponses, je recommande de vérifier quelle instance de virtualenv vous exécutez: En plus des autres réponses, je recommande de vérifier quelle instance virtualenv vous exécutez:

which virtualenv

Si cela se place quelque chose dans / usr / bin local /, alors il est possible - et même probable -. Que vous avez installé virtualenv (éventuellement en utilisant une instance de easy_tools ou pip) sans utiliser le gestionnaire de paquets de votre système (infusion dans le cas de l' OP) si S'il y a un problème dans / usr / local / bin, il peut même être possible d'installer virtualenv (peut utiliser easy_tools ou des instances pip) sans utiliser le gestionnaire de paquets du système (marron dans OP). C'était mon problème, c'était mon problème .

Il y a des années - quand j'étais encore plus ignorant - j'avais installé virtualenv et cela masquait virtualenv fourni par mon système . Il y a de nombreuses années - quand j'étais plus ignorant - j'ai installé virtualenv, qui obscurcit les packages fournis par mon système virtualenv.

Après avoir supprimé cet ancien virtualenv cassé, mes problèmes ont disparu. Après avoir supprimé cet ancien virtualenv, mes problèmes ont disparu.


# 5F

J'ai essayé pyenv et c'est très pratique pour changer de version python (global, local dans un dossier ou dans virtualenv): J'ai essayé pyenv , ce qui est très pratique pour changer la version python (global, dossier ou local dans virtualenv):

brew install pyenv

puis installez la version Python de votre choix: Installez ensuite la version Python requise:

pyenv install 3.5.0

et créez simplement virtualenv avec le chemin vers la version d'interpréteur requise: et créez simplement un virtualenv et incluez le chemin de la version d'interpréteur requise:

virtualenv -p /Users/johnny/.pyenv/versions/3.5.0/bin/python3.5 myenv

Voilà, vérifiez la version: Voilà, vérifiez la version :

. ./myenv/bin/activate && python -V

Plugin aussi pour pyenv sont là pyenv-virtualenv Mais ça n'a pas marché pour moi en quelque sorte. Il pyenv la prise pyenv-virtualenv, mais il me ne fonctionne pas.


# 6 étage

Fonctionne pour moi

virtualenv --no-site-packages --distribute -p /usr/bin/python3 ~/.virtualenvs/py3
Publié 0 articles originaux · loué 75 · 560 000 vues +

Je suppose que tu aimes

Origine blog.csdn.net/w36680130/article/details/105456549
conseillé
Classement