2015-03-24 3 views
0

Я недавно обновил с Python 2.7.6 до Python 2.7.9 на своем Mac. Моя проблема в том, что я не могу создать новый virtualenv с использованием Python 2.7.9 с флагом -p.Как я могу найти определенную версию интерпретатора Python?

Когда я открываю оболочку Python вне виртуальной среды это является использованием 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. 

Однако, когда я создаю новую виртуальную среду, используя либо virtualenv или mkvirtualenv он продолжает использовать 2.7. 6.

Я понимаю, что я могу использовать флаг -p для создания виртуальной среды с использованием конкретной версии Python (например, 3.0, 2.6 и т. Д.), Но каждый из них имеет свой собственный исполняемый файл, например.

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

или

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

Я, кажется, не имеют python2.7.9 исполняемый расположенный в /usr/bin или в любом другом месте. У меня есть python2.7 исполняемый файл, но если я указываю это:

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

в результате виртуальная среда все еще использует версию Python 2.7.6. Я думал, что установка Python 2.7.9 должна была обновить исполняемый файл python2.7 в /usr/bin/?

Итак, мой вопрос: где находится мой исполняемый файл Python 2.7.9 и как его указать при создании новой виртуальной среды?

+1

Попробуйте 'which python' и используйте этот двоичный код – thefourtheye

+0

, поскольку @thefourtheye говорит, попробуйте' virtualenv -p $ (который python) test7' – Holloway

+0

* «Я думал, что установка Python 2.7.9 должна была обновить' python2.7 'исполняемый файл в'/usr/bin'? * * - нет, см., например, http://stackoverflow.com/q/5846167/3001761 для изменения версии по умолчанию. – jonrsharpe

ответ

1

Используйте which, чтобы узнать, какой исполняемый файл запускается из командной строки, а затем используйте его для создания virtualenv.

Что-то вроде

virtualenv -p $(which python) test7 
+0

Работал отлично. В моем случае это было 'virtualenv -p /Library/Frameworks/Python.framework/Versions/2.7/bin/python test7' – Deepend

0

/usr/bin/python2.7 просто символическая ссылка на фактический питон двоичный, который может быть расположен где-то в другом месте. Скорее всего, если вы выполните /usr/bin/python2.7 --version, он покажет вам «Python 2.7.6».

Я не пробовал это на Mac, но сделал это на Linux, должен получить определенную версию python и скомпилировать ее вручную в моем пути/users // mypython, а затем изменить символическую ссылку в/usr/bin/python, чтобы указать на мою версию.

Смежные вопросы