Ответ 1
Если вы не изменили набор пакетов по умолчанию при использовании установщика python.org, введите python
из командной строки, чтобы запустить вновь установленный Python 2.7. (Вам нужно будет запустить новый сеанс терминала после запуска установщика, чтобы увидеть это.) Текущие установщики python.org для OS X создают папку в каталоге приложений с именем Python m.n
в зависимости от версии Python. Если вы посмотрите в /Applications/Python 2.7
, вы увидите файл с именем Update Shell Profile.command
. Это оболочка script; вы можете проверить его в редакторе или с помощью Quicklook. Его целью является изменение файлов запуска для наиболее распространенных программ оболочки в OS X (bash
, sh
, csh
), чтобы гарантировать, что каталог, в котором находятся новые исполняемые команды Python, добавляется в начало список каталогов в переменной среды PATH, так что команды python в нем будут найдены до того, как будут найдены команды python, которые были заменены Apple. По умолчанию установщик запускает Update Shell Profile.command
для вас автоматически. Это должно привести к чему-то вроде этого:
$ cat ~/.bash_profile
# .bash_profile
# ... other stuff
# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
Если вы посмотрите в этом каталоге, вы должны увидеть что-то вроде этого:
$ ls -l /Library/Frameworks/Python.framework/Versions/2.7/bin
total 272
lrwxr-xr-x 1 root admin 8 Nov 30 00:49 [email protected] -> 2to3-2.7
-rwxrwxr-x 1 root admin 140 Nov 30 00:30 2to3-2.7*
lrwxr-xr-x 1 root admin 7 Nov 30 00:49 [email protected] -> idle2.7
-rwxrwxr-x 1 root admin 138 Nov 30 00:30 idle2.7*
lrwxr-xr-x 1 root admin 8 Nov 30 00:49 [email protected] -> pydoc2.7
-rwxrwxr-x 1 root admin 123 Nov 30 00:30 pydoc2.7*
lrwxr-xr-x 1 root admin 9 Nov 30 00:49 [email protected] -> python2.7
lrwxr-xr-x 1 root admin 16 Nov 30 00:49 [email protected] -> python2.7-config
-rwxrwxr-x 1 root admin 33764 Nov 30 00:31 python2.7*
-rwxrwxr-x 1 root admin 1663 Nov 30 00:31 python2.7-config*
lrwxr-xr-x 1 root admin 10 Nov 30 00:49 [email protected] -> pythonw2.7
-rwxrwxr-x 1 root admin 33764 Nov 30 00:31 pythonw2.7*
lrwxr-xr-x 1 root admin 11 Nov 30 00:49 [email protected] -> smtpd2.7.py
-rwxrwxr-x 1 root admin 18586 Nov 30 00:30 smtpd2.7.py*
Новый питон доступен как команда python2.7
, но есть также символическая ссылка на него как python
. Поскольку среда PATH была изменена:
$ echo $PATH
/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
когда вы вводите python
в качестве команды в оболочке, эта символьная ссылка будет найдена прежде, чем поставляемый Apple python
в /usr/bin
один из каталогов, где установлены пользовательские команды, поставляемые системой (как в ОС X 10.6):
$ ls /usr/bin/py*
/usr/bin/pydoc* /usr/bin/python-config* /usr/bin/[email protected]
/usr/bin/[email protected] /usr/bin/[email protected] /usr/bin/pythonw*
/usr/bin/[email protected] /usr/bin/[email protected] /usr/bin/[email protected]
/usr/bin/python* /usr/bin/[email protected] /usr/bin/[email protected]
(Обратите внимание, что в общем случае вам не следует пытаться изменять или удалять файлы в /usr/bin
, поскольку они являются частью OS X и управляются Apple.)
Существует множество способов управления несколькими установками Python в OS X; проверьте архивы или Интернет. Следует иметь в виду, что вы всегда можете использовать абсолютный путь к требуемой команде python для проверки. Таким образом, с измененным путем, как указано выше, вы должны увидеть следующее поведение:
$ /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 -c 'import sys;print(sys.version)'
2.7.1 (r271:86882M, Nov 30 2010, 09:39:13)
[GCC 4.0.1 (Apple Inc. build 5494)]
$ python2.7 -c 'import sys;print(sys.version)'
2.7.1 (r271:86882M, Nov 30 2010, 09:39:13)
[GCC 4.0.1 (Apple Inc. build 5494)]
$ python -c 'import sys;print(sys.version)'
2.7.1 (r271:86882M, Nov 30 2010, 09:39:13)
[GCC 4.0.1 (Apple Inc. build 5494)]
$ /usr/bin/python -c 'import sys;print(sys.version)'
2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)]
$ /usr/bin/python2.6 -c 'import sys;print(sys.version)'
2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)]