2015-03-24 1 views
0

J'ai récemment mis à jour de Python 2.7.6 à Python 2.7.9 sur mon Mac. Mon problème est que je ne peux pas créer un nouveau virtualenv en utilisant Python 2.7.9 avec le drapeau -p.Comment puis-je localiser une version spécifique de l'interpréteur Python?

Lorsque j'ouvre le shell Python en dehors d'un environnement virtuel, il est à l'aide 2.7.9:

localhost:test6 brendan$ python 
Python 2.7.9 (v2.7.9:648dcafa7e5f, Dec 10 2014, 10:10:46) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 

Cependant, lorsque je crée un nouvel environnement virtuel à l'aide virtualenv ou mkvirtualenv il continue à utiliser 2.7. 6. Je comprends que je peux utiliser l'indicateur -p pour créer un environnement virtuel en utilisant une version spécifique de Python (par exemple 3.0, 2.6, etc.), mais chacun d'eux a son propre exécutable, par exemple.

virtualenv -p /usr/bin/python3.0 test6 

ou

virtualenv -p /usr/bin/python2.6 test7 

Je ne semble pas avoir un exécutable python2.7.9 situé dans /usr/bin ou nulle part ailleurs. J'ai un exécutable python2.7, mais si je précise ceci:

virtualenv -p /usr/bin/python2.7 test7 

l'environnement virtuel résultant utilise toujours la version 2.7.6 de Python. Je pensais que l'installation de Python 2.7.9 aurait dû mettre à jour l'exécutable python2.7 en /usr/bin/? Donc, ma question est: où se trouve mon exécutable Python 2.7.9, et comment le spécifier lors de la création d'un nouvel environnement virtuel?

+1

Essayez 'quel python' et utilisez ce binaire – thefourtheye

+0

comme dit @thefourtheye, essayez' virtualenv -p $ (quel python) test7' – Holloway

+0

* "Je pensais que l'installation de Python 2.7.9 aurait dû mettre à jour le' python2.7 'exécutable dans'/usr/bin'? "* - non, voir par exemple http://stackoverflow.com/q/5846167/3001761 pour changer la version par défaut. – jonrsharpe

Répondre

1

Utilisez which pour trouver quel exécutable est exécuté à partir de la ligne de commande, puis utilisez-le pour créer le fichier virtualenv.

Quelque chose comme

virtualenv -p $(which python) test7 
+0

A travaillé parfaitement. Dans mon cas c'était 'virtualenv -p /Library/Frameworks/Python.framework/Versions/2.7/bin/python test7' – Deepend

0

Le /usr/bin/python2.7 est tout simplement un lien symbolique vers le binaire python réelle qui pourrait se trouver ailleurs. Très probablement si vous exécutez /usr/bin/python2.7 --version il vous montrera "Python 2.7.6". Je n'ai pas essayé ceci sur mac, mais je l'ai fait sous Linux, c'est d'obtenir une version spécifique de python et de la compiler manuellement dans mon path/users // mypython, puis de modifier le lien symbolique dans/usr/bin/python pour pointer vers ma version.