En utilisant virtualenv , je lance mes projets avec la version par défaut de Python (2.7). Sur un projet, j'ai besoin d'utiliser Python 3.4.
Je l'ai brew install python3
installé sur mon Mac. Maintenant, comment créer un virtualenv qui utilise la nouvelle version?
par exemple sudo virtualenv envPython3
Si j'essaye:
virtualenv -p python3 test
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
python
python-3.x
virtualenv
Prométhée
la source
la source
Réponses:
il suffit de courir
Mise à jour après l'édition d'OP:
Il y avait un bogue dans la version OP de virtualenv, comme décrit ici . Le problème a été résolu en exécutant:
la source
virtualenv -p $(which python3) envname
virtualenv -p python3 my_virtual_env
,python3
est également accessible de l'extérieur de l'environnement virtuel?bin
,lib
,include
,local
etshare
répertoires dans le répertoire racine de votre projet. 2. Dans l'exécution du terminal:virtualenv -p python3 .
qui initialise un nouveau virtualenv Python3 dans le répertoire courant.Python 3 a un support intégré pour les environnements virtuels - venv . Il serait peut-être préférable de l'utiliser à la place. Se référant aux documents:
Mise à jour pour Python 3.6 et plus récent:
Comme pawciobiel correctement les commentaires ,
pyvenv
est dépréciée à partir de Python 3.6 et la nouvelle façon est:la source
python3 -m venv /path/v3
puisque le script pyvenv est obsolète depuis Python 3.6.python3 -m venv /path/v3
erreurs ici.Error: Command '['/path/v3/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit
Suis-je en train de manquer quelque chose? Avec l'--without-pip
option, il crée au moins correctement le venv avec des scripts d'activation / désactivation.J'ai essayé pyenv et c'est très pratique pour changer de version python (globale, locale dans un dossier ou dans le virtualenv):
puis installez la version Python que vous souhaitez:
et créez simplement virtualenv avec le chemin vers la version d'interpréteur nécessaire:
Voilà, vérifiez la version:
Il existe également un plugin pour pyenv pyenv-virtualenv mais cela n'a pas fonctionné pour moi.
la source
Installez les prérequis.
Créez un environnement virtuel basé sur Python3. Activez éventuellement l'
--system-site-packages
indicateur.Situé dans l'environnement virtuel.
Installez d'autres exigences à l'aide du
pip
gestionnaire de packages.Lorsque vous travaillez sur plusieurs projets python simultanément, il est généralement recommandé d'installer des packages communs comme
pdbpp
globalement, puis de les réutiliser dans virtualenvs.L'utilisation de cette technique permet d'économiser beaucoup de temps sur la récupération et l'installation de packages, en plus de consommer un minimum d'espace disque et de bande passante réseau.
Instructions spécifiques à Django
S'il y a beaucoup de packages python à l'échelle du système, il est recommandé de ne pas utiliser
--system-site-packages
flag en particulier pendant le développement car j'ai remarqué que cela ralentit beaucoup le démarrage de Django. Je suppose que l'initialisation de l'environnement Django analyse et ajoute manuellement tous les packages de site à partir du chemin système, ce qui pourrait être la raison. Mêmepython manage.py shell
devient très lent.Cela dit, quelle option fonctionne mieux. Pourrait être sûr de simplement sauter l'
--system-site-packages
indicateur pour les projets Django.la source
apt-get
maisbrew
)travaillé pour moi.
la source
The executable python3 (from --python=python3) does not exist
, que feriez-vous? Je voulais brasser isntall python3 mais je ne savais pas si c'était une bonne idée ou si mon système se confondrait avec la version python que j'utiliseVous pouvez spécifier une version spécifique de Python lors de la création de l'environnement.
Il est mentionné dans virtualenv.py
Dans certains cas, cela doit être le chemin d'accès complet à l'exécutable:
Comment
-p
fonctionnela source
J'avais le même
ERROR
message. La solution de tbrisker n'a pas fonctionné dans mon cas. Au lieu de cela, cela a résolu le problème:la source
C'est tout ce dont vous avez besoin pour exécuter un environnement virtuel en python / python3
D'abord s'il
virtualenv
n'est pas installé, exécutezMaintenant exécuté:
Parfois, la cmd
virtualenv
échoue, si c'est le cas, utilisez ceci:Activez maintenant l'environnement virtuel:
Ou:
Maintenant, lancez
Vous devriez voir le chemin complet vers votre répertoire et votre
<env_name>/bin/python
suffixePour quitter virtualenv, exécutez:
la source
Python est désormais livré avec sa propre implémentation d'environnement virtuel, sous le nom de "venv". Je suggère d'utiliser cela au lieu de virtualenv.
Citant de venv - docs ,
Pour Windows, pour lancer venv sur un projet, ouvrez cmd:
(Suggère d'utiliser des guillemets doubles autour du chemin du répertoire s'il contient des espaces. Ex: "C: / My Dox / Spaced Directory / Something")
Une fois que venv est configuré, vous verrez de nouveaux dossiers dans votre répertoire de projet. L'un d'eux serait "Scripts".
Pour activer ou invoquer le venv, vous avez besoin de:
Vous pouvez désactiver un environnement virtuel en tapant "désactiver" dans votre shell. Avec cela, vous êtes maintenant prêt à installer les bibliothèques spécifiques à votre projet, qui résideront dans le dossier "Lib".
================================ Edit 1 ================ ==================== Le scénario qui sera discuté ci-dessous n'est pas ce qui a été demandé à l'origine, il suffit de l'ajouter au cas où quelqu'un utiliserait vscode avec l'extension python
Dans le cas où vous utilisez vs code avec son extension python, vous pourriez rencontrer un problème avec son pylint qui pointe vers l'installation globale. Dans ce cas, pylint ne pourra pas voir les modules installés dans votre environnement virtuel et affichera donc des erreurs lors de l'importation.
Voici une méthode simple pour surmonter cela.
Nous activons essentiellement l'environnement d'abord, puis nous invoquons le code vs pour que pylint démarre dans l'environnement et puisse voir tous les packages locaux.
la source
virtualenv
pour une utilisation quotidienne des environnements virtuels (workon
, etc.), mais pour la création fiable de nouveaux environnements virtuels,python3.x
c'est le seul moyen que j'ai trouvé qui fonctionne.En plus des autres réponses, je recommande de vérifier quelle instance de virtualenv vous exécutez:
Si cela s'avère quelque chose dans / usr / local / bin, il est possible - même probable - que vous ayez installé virtualenv (éventuellement en utilisant une instance de easy_tools ou pip) sans utiliser le gestionnaire de paquets de votre système (brew dans le cas de OP). C'était mon problème.
Il y a des années - quand j'étais encore plus ignorant - j'avais installé virtualenv et il masquait virtualenv fourni par le package de mon système.
Après avoir supprimé cet ancien virtualenv cassé, mes problèmes ont disparu.
la source
En python3.6, j'ai essayé
python3 -m venv myenv
, selon la documentation, mais cela prenait tellement de temps. Donc, la commande très simple et rapide estpython -m venv yourenv
Cela a fonctionné pour moi sur python3.6.la source
Sur Mac, je devais faire ce qui suit pour le faire fonctionner.
la source
which python2.7
ouwhich python3.5
ouwhich python3.6
, puis remplacez le about--python=DIRECTORY
Si vous installez python3 (
brew install python3
) avec virtualenv burrito , vous pouvez alors fairemkvirtualenv -p $(which python3) env_name
Bien sûr, je sais que le burrito virtualenv n'est qu'un emballage, mais il m'a bien servi au fil des ans, réduisant certaines courbes d'apprentissage.
la source
virtualenv --python=/usr/local/bin/python3 <VIRTUAL ENV NAME>
cela ajoutera le chemin python3 pour votre environnement virtuel.la source
Ça a marché pour moi
la source
Pour ceux qui ont des problèmes en travaillant avec Anaconda3 (Python 3).
Vous pourriez utiliser
Pour activer l'environnement (Linux, MacOS)
Pour les fenêtres
la source
J'ai essayé toutes les choses ci-dessus, cela n'a toujours pas fonctionné. Donc, en tant que force brute, je viens de réinstaller l'anaconda, de réinstaller le virtualenv ... et cela a fonctionné.
la source
Je voulais garder python 2.7.5 comme version par défaut sur Centos 7 mais avoir python 3.6.1 dans un environnement virtuel fonctionnant aux côtés d'autres environnements virtuels en python 2.x
J'ai trouvé le lien ci-dessous la meilleure solution pour la dernière version de python (python 3.6.1) https://www.digitalocean.com/community/tutorial_series/how-to-install-and-set-up-a-local-programming -environnement-pour-python-3 . Il montre les étapes pour différentes plates-formes mais les étapes de base sont
la source
Les commandes simples ci-dessous peuvent créer un env virtuel avec la version 3.5
si vous voulez une version virtuelle env 3.6
la source
Pour ceux d'entre vous qui utilisent pipenv et qui souhaitent installer une version spécifique:
la source
J'ai la même erreur car il y a un conflit avec l'installation de miniconda3, donc lorsque vous tapez "which virtualenv" et si vous avez installé miniconda et qu'il pointe vers cette installation, vous pouvez le supprimer (si vous m'aimez et que vous n'avez pas bougé) encore) ou modifiez votre variable d'environnement pour pointer vers l'installation souhaitée.
la source
Sur la ligne de commande Windows, ce qui suit a fonctionné pour moi. Découvrez d'abord où se trouvent vos exécutables python:
Cela produira les chemins vers les différents python.exe sur votre système. Voici les miens:
Donc, pour Python3, cela se trouvait dans le premier chemin pour moi, donc je cd dans le dossier racine de l'application où je veux créer un dossier d'environnement virtuel. Ensuite, j'exécute ce qui comprend le chemin d'accès à mon exécutable Python3, en nommant mon environnement virtuel «venv»:
Ensuite, activez l'environnement virtuel:
Enfin, installez les dépendances pour cet environnement virtuel:
Ce fichier requirements.txt peut être rempli manuellement si vous connaissez les bibliothèques / modules nécessaires à votre application dans l'environnement virtuel. Si vous aviez l'application en cours d'exécution dans un autre environnement, vous pouvez alors produire automatiquement les dépendances en exécutant ce qui suit (cd dans le dossier de l'application dans l'environnement où elle fonctionne):
Ensuite, une fois que vous avez le fichier requirements.txt que vous avez «gelé», vous pouvez installer les exigences sur une autre machine ou un environnement propre avec ce qui suit (après le cd dans le dossier d'application):
Pour voir votre version python dans l'environnement virtuel, exécutez:
Alors voila ... vous avez votre Python3 en cours d'exécution dans votre environnement virtuel. Sortie pour moi:
la source