Две версии python на linux. как сделать 2.7 По умолчанию


у меня есть две версии python на моем linuxbox:

$python
Python 2.6.6 (r266:84292, Jul 10 2013, 22:48:45) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 


$ /usr/local/bin/python2.7
Python 2.7.3 (default, Oct  8 2013, 15:53:09) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

$ which python
/usr/bin/python
$ ls -al /usr/bin/python
-rwxr-xr-x. 2 root root 4864 Jul 10 22:49 /usr/bin/python

Как я могу сделать 2.7 версией по умолчанию, поэтому, когда я набираю python это ставит меня в 2.7?

3 103

3 ответа:

вы, вероятно, на самом деле не хотите менять свой Python по умолчанию.

ваш дистрибутив установил стандартную систему Python в /usr/bin, и могут иметь сценарии, которые зависят от этого присутствия, и выбраны #! /usr/bin/env python. Вы можете обычно уйти с запуском скриптов Python 2.6 в 2.7,но вы хотите рискнуть?

кроме того, баловаться с /usr/bin может нарушить способность вашего менеджера пакетов управлять пакетами. И изменение порядка каталоги в вашем PATH повлияет на многое другое, кроме Python. (На самом деле, это более распространено, чтобы иметь /usr/local/bin перед /usr/bin, и это может быть то, что вы на самом деле хотите,-но если у вас наоборот, по-видимому, есть хорошая причина для этого.)

а не нужно чтобы изменить Python по умолчанию, чтобы заставить систему работать 2.7 при вводе python.


во-первых, вы можете создать оболочку псевдоним:

alias python=/usr/local/bin/python2.7

введите это в командной строке или поместите его в свой ~/.bashrc если вы хотите, чтобы изменения были постоянными, и теперь, когда вы тип python он запускает выбранный 2.7, но когда какая-то программа в вашей системе пытается запустить скрипт с /usr/bin/env python он работает по стандарту 2.6.


в качестве альтернативы, просто создайте виртуальная среда из вашего 2.7 (или отдельной venvs для разных проектов), и делать свою работу внутри venv.

добавить /usr/local/bin на PATH переменная окружения, ранее в списке, чем /usr/bin.

как правило, это делается в rc-файле вашей оболочки, например, для bash, вы бы поместили это в .bashrc:

export PATH="/usr/local/bin:$PATH"

это заставит вашу оболочку сначала искать python на /usr/local/bin, прежде чем он пойдет с одним в /usr/bin.

(конечно, это означает, что вы также должны иметь /usr/local/bin/python выберите пункт python2.7 - если это еще не так, вам понадобится символическая ссылка оно.)

Я предполагаю, что вы установили версию 2.7 вручную, в то время как 2.6 поставляется из пакета?

простой ответ: удалите пакет python.

более сложный: не устанавливайте вручную в /usr / local. Создайте пакет с версией 2.7, а затем обновите его.

обработка пакета зависит от того, какой дистрибутив вы используете.