J'ai python2.7, python3.7, python3.6 sur ma machine. Je ne sais toujours pas comment gérer et voir l'emplacement des trois versions de python.
Actuellement, je tape simplement python avec le nom de la version pour ouvrir ce terminal ou exécuter un script.
J'ai fait python3.6 par défaut en créant un alias dans ~ / .bashrc
.
J'ai installé virtualenv en utilisant python3.6, donc chaque fois que je crée venc par défaut, il contient python3.6.
Pour créer venv avec python2.7 j'ai essayé -
virtualenv -p /usr/bin/python2.7 /Users/karim/Documents/venv2.7
Mais ici aussi dans ce venv2.7 quand je vois la version python, cela donne 3.6
. Quand je tape python2.7 dans le terminal, cela ouvre python2.7.
Je peux faire un alias pour python2.7 étant dans un environnement virtuel mais je doute que cela puisse également créer python2.7 default en dehors de venv.
J'ai vraiment vérifié tous les threads SO mais aucun article ne m'a aidé à créer venv avec python2.7 dans un système ayant python3.6 par défaut.
5 Réponses :
de Installer et exécuter Python 3 en même temps que Python 2 , vous devez installer (python 2 et python 3) le python à partir du centre logiciel , puis utiliser la solution fournie ici pour créer un environnement virtuel p >
si python 2.7 est dans votre système et l'a installé et que vous avez utilisé l'alias python27 dans ~ / .bashrc pour exécuter python 2.7
alors vous pouvez créer un environnement virtuel
python27 -m virtualenv
si je fais l ' alias python27 dans ~ / .bashrc
alors il fera python27 par défaut sur ma machine, non? Je ne veux pas que python27 soit par défaut sur ma machine. Je veux juste l'utiliser dans venv
non, cela ne le rendra pas par défaut, c'est juste un mot-clé pour exécuter python2.7. si dans bashrc python est associé à python 3.7 alors en utilisant python vous serez associé à python 3.7 (par défaut)
@JhonPatric vous pouvez également utiliser anaconda pour travailler dans différents environnements python
Activez-vous correctement l'environnement virtuel? Après avoir créé le virtualenv, vous devez lancer la commande
fathead:~ sholden$ python3.7 -m pip install virtualenv Looking in indexes: https://pypi.org/simple, https://pypi.python.org/simple Collecting virtualenv Downloading https://files.pythonhosted.org/packages/7e/1b/6c00d57127608793e16e8b7f813e64d58a1938505c42fe190d1386ab41e1/virtualenv-16.4.0-py2.py3-none-any.whl (2.0MB) 100% |ââââââââââââââââââââââââââââââââ| 2.0MB 3.4MB/s Installing collected packages: virtualenv Successfully installed virtualenv-16.4.0
pour changer votre environnement afin que la commande python
fasse référence à l'interpréteur dans virtualenv. Souvenez-vous que virtualenv n'a rien à voir avec votre répertoire de travail actuel ...
Est-il possible que le virtualenv
que vous utilisez soit associé au mauvais binaire Python? J'ai beaucoup de Pythons sur mon système, y compris Python3.7 et Python 2.7 dans / usr / local / bin :
fathead:~ sholden$ python3.7 -m virtualenv -p /usr/local/bin/python2.7 venv2.7 Running virtualenv with interpreter /usr/local/bin/python2.7 New python executable in /Users/sholden/venv2.7/bin/python2.7 Also creating executable in /Users/sholden/venv2.7/bin/python Installing setuptools, pip, wheel... done.
Le quel
(également type
sous MacOS) qui vous indique à quel exécutable une commande est associée. J'ai vérifié que j'obtenais le bon python3.7
avec
fathead:~ sholden$ which python3.7 /usr/local/bin/python3.7
Pour m'assurer que j'utilise le bon virtualenv
de Python que j'utilise le binaire Python pour l'exécuter:
fathead:~ sholden$ ls -l /usr/local/bin/python* lrwxr-xr-x 1 sholden staff 38 6 Dec 12:26 /usr/local/bin/python@ -> ../Cellar/python@2/2.7.15_1/bin/python lrwxr-xr-x 1 sholden staff 38 6 Dec 12:34 /usr/local/bin/python-build@ -> ../Cellar/pyenv/1.2.8/bin/python-build lrwxr-xr-x 1 sholden staff 45 6 Dec 12:26 /usr/local/bin/python-config@ -> ../Cellar/python@2/2.7.15_1/bin/python-config lrwxr-xr-x 1 sholden staff 39 6 Dec 12:26 /usr/local/bin/python2@ -> ../Cellar/python@2/2.7.15_1/bin/python2 lrwxr-xr-x 1 sholden staff 46 6 Dec 12:26 /usr/local/bin/python2-config@ -> ../Cellar/python@2/2.7.15_1/bin/python2-config lrwxr-xr-x 1 sholden staff 41 6 Dec 12:26 /usr/local/bin/python2.7@ -> ../Cellar/python@2/2.7.15_1/bin/python2.7 lrwxr-xr-x 1 sholden staff 48 6 Dec 12:26 /usr/local/bin/python2.7-config@ -> ../Cellar/python@2/2.7.15_1/bin/python2.7-config lrwxr-xr-x 1 sholden staff 34 6 Dec 12:22 /usr/local/bin/python3@ -> ../Cellar/python/3.7.1/bin/python3 lrwxr-xr-x 1 sholden staff 41 6 Dec 12:22 /usr/local/bin/python3-config@ -> ../Cellar/python/3.7.1/bin/python3-config lrwxr-xr-x 1 sholden staff 36 6 Dec 12:22 /usr/local/bin/python3.7@ -> ../Cellar/python/3.7.1/bin/python3.7 lrwxr-xr-x 1 sholden staff 43 6 Dec 12:22 /usr/local/bin/python3.7-config@ -> ../Cellar/python/3.7.1/bin/python3.7-config lrwxr-xr-x 1 sholden staff 37 6 Dec 12:22 /usr/local/bin/python3.7m@ -> ../Cellar/python/3.7.1/bin/python3.7m lrwxr-xr-x 1 sholden staff 44 6 Dec 12:22 /usr/local/bin/python3.7m-config@ -> ../Cellar/python/3.7.1/bin/python3.7m-config lrwxr-xr-x 1 sholden staff 39 6 Dec 12:26 /usr/local/bin/pythonw@ -> ../Cellar/python@2/2.7.15_1/bin/pythonw lrwxr-xr-x 1 sholden staff 40 6 Dec 12:26 /usr/local/bin/pythonw2@ -> ../Cellar/python@2/2.7.15_1/bin/pythonw2 lrwxr-xr-x 1 sholden staff 42 6 Dec 12:26 /usr/local/bin/pythonw2.7@ -> ../Cellar/python@2/2.7.15_1/bin/pythonw2.7 -rwxr-xr-x@ 1 sholden staff 230 25 Sep 2017 /usr/local/bin/pythonz*
Il se peut que votre Python 3.7 n'ait pas virtualenv
installé. Si tel est le cas, installez-le avec
source /Users/karim/Documents/venv2.7/bin/activate
Après avoir créé le virtualenv, vous devriez pouvoir l'activer comme décrit.
Oui, je fais exactement pour démarrer ce venv. Mais dans l'environnement virtuel, le terminal python s'ouvre avec python3.6
Je l'ai mis à jour pour essayer de donner quelques indices supplémentaires sur ce qui pourrait ne pas se passer ici. \
J'ai essayé python3.7 -m virtualenv -p /usr/local/bin/python2.7 / Users / karim / Documents / ven2
qui s'est terminé avec succès mais quand je le démarre, il a 3.6
Êtes-vous sûr que /usr/local/bin/python2.7
n'est pas un interpréteur 3.6? Utilisez la commande which
pour voir quel interpréteur s'exécute lorsque vous tapez python
.
Et pourquoi 3.6 et non 3.7 - c'est encore plus étrange!
J'ai fait python3.6 par défaut en créant un alias dans ~ / .bashrc
C'est la source de votre problème. Si je comprends bien, vous avez créé un alias pour
python
, ce qui fait que votre système ne recherche pas votrePATH
pour votre version de python, mais utilise plutôt votre alias. Ce comportement ne change pas lors de l'utilisation de virtualenv, car les activer modifiera votrePATH
, mais l'alias empêche toujours l'utilisation d'autres versions de python.Pour faire une installation de python "par défaut ", vous devez modifier votre
PATH
en ajoutant la version de python souhaitée au début, sans créer d'alias.Vous pouvez utiliser les commandes
export PATH="<Directory of desired python version>:$PATH"
Merci d'avoir montré un problème avec les alias. Avez-vous de l'aide pour modifier PATH
?
Actuellement, lorsque j'ouvre mon bashrc
, il est vide. Le python actuel est 3.6 (car lorsque je tape python, il ouvre python 3.6). Supposons maintenant que je veuille créer un environnement virtuel avec python 2.7, pouvez-vous me dire quelles étapes dois-je suivre?
J'ai exporté, mais python2.7 n'est toujours pas disponible dans venv par défaut
export
n'a aucune incidence sur les alias, et comme la réponse l'explique déjà, les alias contournent complètement votre PATH
de toute façon. unalias python
devrait supprimer l'alias de votre session en cours.
J'ai expliqué dans les commentaires et la description de la question que j'ai ajouté
alias python=python3.6
Dans bashrc
et j'ai essayé de créer un environnement virtuel python2.7 , il ouvre toujours 3.6 dedans.
Personne n'a parlé du fichier bash_profile
.
Dans un autre article en regardant pyenv
J'ai vu qu'ils considéraient bash_profile
comme alias. J'ai soudainement vérifié le mien, et
alias python = python3.6
y était. C'est pourquoi il prenait également python3.6 dans l'environnement virtuel python2.7.
J'ai commenté cet alias, alors il ne prend pas python 3.6 globalement.
Un point important à noter est - Vous changez d'alias et voulez voir son effet, ouvrir un nouvel onglet ou terminal et y tester. Si vous essayez dans l'ancien environnement virtuel en cours d'exécution, il se peut qu'il affiche uniquement l'ancienne version de Python.
Merci à tous pour vos réponses et votre temps. Cela m'a aidé à en apprendre davantage.
Si vous utilisez pycharm, vous pouvez créer un nouvel environnement virtuel sous settings> project> cog symbol, drodown menu: add.
Ici, vous pouvez spécifier quel est votre interpréteur python de base, pointez ceci vers l'endroit où python3 ou python2 sont installés et pycharm fera le travail pour vous.
@saleem mentionné à installez le python à partir du centre logiciel (je suppose que vous utilisez ubuntu). si python installe le centre logiciel du formulaire (python 2 et python 3), vous n'aurez pas besoin de changer de chemin, il suffit d'utiliser le mot-clé pour invoder python 3 et python2. puis à partir du dessous, utilisez n'importe quelle méthode pour créer un environnement virtuel