как изменить версию Python по умолчанию? - PullRequest
79 голосов
/ 01 мая 2011

Я установил Python 3.2 в моем Mac. После запуска / Applications / Python 3.2 / Обновление Shell Profile.command сбивает с толку тот факт, что когда я набираю python -V в Терминале, он говорит, что Python 2.6.1 как я могу изменить версию Python по умолчанию?

Ответы [ 10 ]

94 голосов
/ 01 мая 2011

Это, вероятно, желательно для обратной совместимости.

Python3 нарушает обратную совместимость, и программы, вызывающие 'python', вероятно, ожидают python2.Вероятно, у вас есть много программ и сценариев, о которых вы даже не подозреваете, что ожидаете python = python2, и изменение этого параметра приведет к поломке этих программ и сценариев.

Ответ, который вы, вероятно, ищете, - Вы не должныизмените это .

Однако вы можете создать собственный псевдоним в вашей оболочке.То, как вы это сделаете, зависит от оболочки, но, возможно, вы могли бы сделать alias py=python3

Если вы не понимаете, как запустить последнюю версию python, то в Linux это по крайней мере так, что python3оставляет вашу python2 установку без изменений (из-за вышеуказанных причин совместимости) ;таким образом, вы можете запустить python3 с помощью команды python3.

40 голосов
/ 01 мая 2011

В Mac OS X с использованием установщика python.org, как у вас, очевидно, вам нужно вызывать Python 3 с python3, а не python. Это в настоящее время зарезервировано для версий Python 2. Вы также можете использовать python3.2 для специального вызова этой версии.

$ which python
/usr/bin/python
$ which python3
/Library/Frameworks/Python.framework/Versions/3.2/bin/python3
$ cd /Library/Frameworks/Python.framework/Versions/3.2/bin/
$ ls -l
total 384
lrwxr-xr-x  1 root  admin      8 Apr 28 15:51 2to3@ -> 2to3-3.2
-rwxrwxr-x  1 root  admin    140 Feb 20 11:14 2to3-3.2*
lrwxr-xr-x  1 root  admin      7 Apr 28 15:51 idle3@ -> idle3.2
-rwxrwxr-x  1 root  admin    138 Feb 20 11:14 idle3.2*
lrwxr-xr-x  1 root  admin      8 Apr 28 15:51 pydoc3@ -> pydoc3.2
-rwxrwxr-x  1 root  admin    123 Feb 20 11:14 pydoc3.2*
-rwxrwxr-x  2 root  admin  25624 Feb 20 11:14 python3*
lrwxr-xr-x  1 root  admin     12 Apr 28 15:51 python3-32@ -> python3.2-32
lrwxr-xr-x  1 root  admin     16 Apr 28 15:51 python3-config@ -> python3.2-config
-rwxrwxr-x  2 root  admin  25624 Feb 20 11:14 python3.2*
-rwxrwxr-x  1 root  admin  13964 Feb 20 11:14 python3.2-32*
lrwxr-xr-x  1 root  admin     17 Apr 28 15:51 python3.2-config@ -> python3.2m-config
-rwxrwxr-x  1 root  admin  25784 Feb 20 11:14 python3.2m*
-rwxrwxr-x  1 root  admin   1865 Feb 20 11:14 python3.2m-config*
lrwxr-xr-x  1 root  admin     10 Apr 28 15:51 pythonw3@ -> pythonw3.2
lrwxr-xr-x  1 root  admin     13 Apr 28 15:51 pythonw3-32@ -> pythonw3.2-32
-rwxrwxr-x  1 root  admin  25624 Feb 20 11:14 pythonw3.2*
-rwxrwxr-x  1 root  admin  13964 Feb 20 11:14 pythonw3.2-32*

Если вы также установили Python 2 с python.org, он будет иметь аналогичный каталог bin структуры без перекрывающихся имен файлов (за исключением 2to3).

$ open /Applications/Python\ 2.7/Update\ Shell\ Profile.command
$ sh -l
$ echo $PATH
/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.2/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
$ which python3
/Library/Frameworks/Python.framework/Versions/3.2/bin/python3
$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
$ cd /Library/Frameworks/Python.framework/Versions/2.7/bin
$ ls -l
total 288
-rwxrwxr-x  1 root  admin    150 Jul  3  2010 2to3*
lrwxr-x---  1 root  admin      7 Nov  8 23:14 idle@ -> idle2.7
-rwxrwxr-x  1 root  admin    138 Jul  3  2010 idle2.7*
lrwxr-x---  1 root  admin      8 Nov  8 23:14 pydoc@ -> pydoc2.7
-rwxrwxr-x  1 root  admin    123 Jul  3  2010 pydoc2.7*
lrwxr-x---  1 root  admin      9 Nov  8 23:14 python@ -> python2.7
lrwxr-x---  1 root  admin     16 Nov  8 23:14 python-config@ -> python2.7-config
-rwxrwxr-x  1 root  admin  33764 Jul  3  2010 python2.7*
-rwxrwxr-x  1 root  admin   1663 Jul  3  2010 python2.7-config*
lrwxr-x---  1 root  admin     10 Nov  8 23:14 pythonw@ -> pythonw2.7
-rwxrwxr-x  1 root  admin  33764 Jul  3  2010 pythonw2.7*
lrwxr-x---  1 root  admin     11 Nov  8 23:14 smtpd.py@ -> smtpd2.7.py
-rwxrwxr-x  1 root  admin  18272 Jul  3  2010 smtpd2.7.py*
28 голосов
/ 02 мая 2018

Проверьте расположение Python 3

$ which python3
/usr/local/bin/python3

Записать псевдоним в bash_profile

vi ~/.bash_profile  
alias python='/usr/local/bin/python3'

Обновить bash_profile

source ~/.bash_profile

Подтвердить команду Python

$ python --version
Python 3.6.5
23 голосов
/ 08 декабря 2015

Старый вопрос, но в качестве альтернативы:

virtualenv --python=python3.5 .venv
source .venv/bin/activate
16 голосов
/ 01 мая 2011

Измените Python по умолчанию, поместив его впереди системного Python на вашем пути, например:

export PATH=/usr/local/bin:$PATH
6 голосов
/ 07 февраля 2019

Делай правильно, делай все правильно!

---> Ноль Откройте терминал,

- Сначала введите python -V, вероятно, он показывает:

Python 2.7.10

-второй ввод python3 -V, вероятно, он показывает:

Python 3.7.2

- третий ввод where python или which python, он, скорее всего, показывает:

/usr/bin/python

--Четвёртый ввод where python3 или which python3. Вероятно, он показывает:

/usr/local/bin/python3

- В-пятых, добавьте следующую строку внизу файла переменной среды PATH в ~/.profile file or ~/.bash_profile под Bash или ~/.zshrcпод zsh.

alias python='/usr/local/bin/python3'

ИЛИ

alias python=python3

- Шестой вход source ~/.bash_profile под Bash или source ~/.zshrc под zsh.

- Седьмой Выход из терминала.

--- Восьмым образом откройте свой терминал и введите python -V. Вероятно, он показывает:

Python 3.7.2

Я успешно его попробовал.

Другие, ~/.bash_profile под зш это не то ~/.bash_profile.

Переменная среды PATH в zsh вместо ~/.profile (или ~/.bash_file) через ~/.zshrc.

Помогите, ребята!

2 голосов
/ 01 марта 2015

Я использую OS X 10.7.5 и Python 3.4.2. Если вы наберете python3 и то, что вы хотите запустить, он запустит его, используя python 3. Например, pyhton3 test001.py. Это запустило тестовую программу под названием test001. Надеюсь, это поможет.

2 голосов
/ 01 мая 2011

Согласно быстрому поиску в Google, это обновление относится только к текущей открытой оболочке.Вероятно, это можно исправить, набрав python3, поскольку mac и linux достаточно похожи, чтобы такие вещи совпадали. Ссылка на результат поиска в Google.

Кроме того, как указало ninjagecko, большинство программ еще не обновлено до 3.x, поэтому использование Python по умолчанию в качестве 3.x сломает многиескрипты Python, используемые в приложениях.

0 голосов
/ 06 мая 2019
sudo mv /usr/bin/python /usr/bin/python2
sudo ln -s $(which python3) /usr/bin/python

Это сломает сценарии, но это точно способ изменить Python. Вам также следует переписать сценарии, чтобы не предполагать, что python равно 2.x. Это будет работать независимо от того, куда вы звоните system или exec.

0 голосов
/ 15 мая 2018

Перейдите к:

Мой компьютер -> Свойства -> Дополнительно -> Переменные среды -> Системные переменные

Предположим, вы уже добавили python 2.7 в переменную path и хотите изменить путь по умолчанию на python 3.x

затем добавьте путь к папке python3.5.x перед путем python2.7.

open cmd: тип "python --version"

версия python будет изменена на python 3.5.x

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...