2011-10-06 2 views
3

В настоящее время, когда я использую команду «python», она указывает на python2.6. Я установил python3.1, и я хочу, чтобы команда «python» указывала на python3.1. Как это возможно?Изменение python по умолчанию на другую версию

[email protected]:~$ which python 
/usr/bin/python 
[email protected]:~$ ls -l /usr/bin/python 
lrwxrwxrwx 1 root root 9 2010-11-24 16:14 /usr/bin/python -> python2.6 
[email protected]:~$ uname -a 
Linux orca 2.6.32-24-server #39-Ubuntu SMP Wed Jul 28 06:21:40 UTC 2010 x86_64 GNU/Linux 
+0

Вам необходимо изменить переменную 'PATH' вашей среды. В зависимости от того, на какой платформе вы находитесь, это изменяется по-другому, но в любом случае необходимо указать путь Python3 до пути Python2. – voithos

+0

Какая у вас ОС? – cwallenpoole

+1

Какая ОС? На linux вы, вероятно, не хотите этого делать – JBernardo

ответ

2

На Linux/Mac OS можно использовать python3 вместо python.

+0

Это не совсем так для всех платформ. Например, в Windows программа Python3.x просто называется 'python.exe'. – voithos

+0

Я был бы признателен за редактирование с исправлением моего недосмотра больше, чем с правом голоса. – JoePasq

+0

Просто чтобы вы знали, я не тот, кто проголосовал за вас. Этот ответ не должен быть отрицательным. +1 – voithos

1

Попробуйте update-alternatives для Linux.

+0

показывает справку об использовании. Что такое команда в точности? спасибо – mahmood

+0

Прочтите ссылку или страницу руководства. По сути, он позволяет указать команду «python» в другом исполняемом файле и предоставляет список возможностей и т. Д. Полное раскрытие: я использовал это только для java, поэтому я не знаю, что он будет работать для python. – andronikus

+0

+1 и дополнительная ссылка: http://www.stylesen.org/python_27_debian_squeeze_60 – tripleee

8

Вы действительно не хотите менять то, что python указывает на то, что некоторые программы могут ожидать Python 2 и перерыв.

Решение должно использовать virtualenv: создать изолированную среду Python 3 (с опцией -p python3), активировать ее, и вы хорошо пойдете.

+2

Правильные системные инструменты используют '#!/Path/to/python' shebang. Поэтому они не ломаются. Но вы правы, 'python' должен запускать исполняемый файл 2.x python. – jfs

+0

Правда. 'egrep -R '#! */usr/bin/env + python '/ usr/bin' говорит мне, что на Ubuntu системные инструменты, как правило, невосприимчивы. Но затронутые программы включают в себя 'scons',' hg-ssh' или 'purple-url-handler' и худший' quodlibet', который обычно не запускается с терминала (так что я думаю, что он терпит неудачу). Я изменил «системные инструменты» на «программы». –

4

Нецелесообразно.

Вы могли бы написать на вершине в вашем собственном сценарии (а притон):

#!/usr/bin/env python3 

Если вы на Windows, а затем установить pylauncher. Он понимает #!.

В Linux, чтобы сделать ваш скрипт исполняемым, запустить один раз:

$ chmod +x your-script 

После этого, для запуска сценария:

$ ./your-script 

Для интерактивного использования вы можете создать virtualenv в @Petr Viktorin баллов из. Для установки/обновления (версии от repositries Ubuntu являются слишком старыми):

$ pip install -U virtualenv{,wrapper} 

Следуйте инструкциям в /path/to/virtualenvwrapper.sh, чтобы создать virtualenv, который использует python3:

$ mkvirtualenv --python python3 py3 

Для активации virtualenv:

$ workon py3 

В активном virtualenv python относится к /path/virtualenv/bin/python. Таким образом, вы можете запустить:

$ python your_module.py 
+0

В этом случае не запускайте программу как 'python myapp.py', а скорее выполняйте ее как обычную программу, например'./Myapp.py' – Mika

+0

@Mika: для интерактивной командной строки 'virtualenv' следует использовать как - отмечает Петр Викторин. Поэтому 'python myapp.py' будет использовать' python3'. – jfs

+0

А, так что 'virtualenv' будет отменять shebang? Хорошо знать. – Mika

3

Вы можете следовать этой процедуре:

sudo rm /usr/bin/python

sudo ln -s /usr/bin/python3.1 /usr/bin/python

Но как уже было сказано Петр Викторин, любые программы, которые ожидали бы питона v2 остановится на Работа. Поэтому используйте с осторожностью.Вы можете отменить изменения, запустив:

sudo rm /usr/bin/python

sudo ln -s /usr/bin/python2.6 /usr/bin/python

10

Поскольку у вас есть Linux, и если вы хотите просто набрать «питон» вместо «Python3» для того, чтобы запускать программы Python, A решение - просто определить псевдоним в вашем файле конфигурации оболочки (.bashrc и т. д.). Для снарядов Борна это должно быть что-то вроде

alias python=python3 

(или как бы то ни было ваше имя Python 3).

Таким образом, вам не нужно ничего менять в своей системе, поэтому это решение должно быть совершенно безобидным и не должно прерывать вашу систему.

+0

Также хорошее предложение. – Mika

3
unlink /usr/bin/python 
ln -s /usr/bin/python3.1 /usr/bin/python 
+2

unlink на самом деле не требуется. Используй силу! (... flag) 'ln -sf /usr/bin/python3.1/usr/bin/python' – Chriszuma

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