Mac Python, указывающий на различные пакеты сайтов после обновления Python - Как указать всем пакетам сайтов правильную версию Python? - PullRequest
0 голосов
/ 25 июня 2011

Я пытаюсь обновить мой Mac с 2.6 до 2.7, и все прошло нормально, за исключением того, что некоторые библиотеки теперь используются с 2.6 вместо 2.7, есть идеи, как я могу указать все новые библиотеки на 2.7? В основном я пытаюсь установить желток для 2.7, но он говорит, что он уже установлен (под 2.6).

$ python
Python 2.7 (r27:82508, Jul  3 2010, 21:12:11) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
[~, kamilski81_macbook@mac]
$ which easy_install
/Library/Frameworks/Python.framework/Versions/2.7/bin/easy_install
[~, kamilski81_macbook@mac]
$ which pip
/Library/Frameworks/Python.framework/Versions/2.7/bin/pip
[~, kamilski81_macbook@mac]
$ which yolk
/Library/Frameworks/Python.framework/Versions/2.6/bin/yolk

Ответы [ 2 ]

2 голосов
/ 25 июня 2011

Из представленных вами свидетельств видно, что в вашем пути поиска оболочки есть каталоги bin инфраструктуры Python 2.6 и Python 2.7 $PATH. Если вы использовали установщики python.org для установки как 2.6, так и 2.7, каждый установщик по умолчанию изменяет файлы запуска вашей оболочки, чтобы включить каталог bin, установленный в $PATH. Например:

$ more ~/.bash_profile
[...]

# Setting PATH for MacPython 2.6
# The orginal version is saved in .profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.6/bin:${PATH}"
export PATH

# Setting PATH for Python 2.7
# The orginal version is saved in .profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
$ echo $PATH
/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Похоже, вы правильно установили pip и easy_install в своем экземпляре 2.7. Вы должны иметь возможность использовать pip или easy_install для установки yolk для 2.7. Нет ничего плохого в том, что на вашем $PATH есть обе корзины. это одно из преимуществ схемы установки платформы Python для Mac OS X. Файлы, которые сам Python устанавливает в эти каталоги bin, обычно устанавливаются как версионное имя файла, например python2.7, с символической ссылкой на его неверсионное имя python. Версионные имена будут уникальными во всех каталогах bin инфраструктуры; какой неверсированный будет использоваться, будет зависеть от порядка, в котором каталоги бинов появляются в $PATH. Для сторонних пакетов со сценариями, таких как yolk, имя сценария не имеет версии с автоматическим контролем версий, поэтому вы можете получить yolk в нескольких каталогах bin, если вы установите его несколько раз.

Если вашей конечной целью является использование только одной версии Python, вы можете изменить файл запуска оболочки (.bash_profile, .profile и др.), Чтобы удалить ссылки на 2.6. Если вы хотите, вы можете полностью удалить файлы 2.6 в платформе.

Если вы хотите сохранить обе версии Python и для каждой из них есть команда yolk, либо измените оболочку $ PATH по мере необходимости, чтобы убедиться, что на первом месте нужная версия (неудобное решение), либо создайте псевдонимы оболочки для абсолютных путей. дублирующихся команд или создайте версионную символическую ссылку в каждой из директорий bin каркаса:

$ cd /Library/Frameworks/Python.framework/Versions/2.6/bin
$ ln -s yolk yolk2.6
$ cd /Library/Frameworks/Python.framework/Versions/2.7/bin
$ ln -s yolk yolk2.7
$ which yolk2.6
/Library/Frameworks/Python.framework/Versions/2.6/bin/yolk2.6
$ which yolk2.7
/Library/Frameworks/Python.framework/Versions/2.7/bin/yolk2.7
0 голосов
/ 25 июня 2011

Сначала проверьте, не установлен ли желток в Version/2.7/site-packages. Если это не так, вам нужно указать pip, на какую версию Python установить:

pip -E /Library/Frameworks/Python.framework/Versions/2.7/bin/python yolk

Если это так, то это проблема с настройками пути, и вам необходимо соответствующим образом изменить переменную PATH.

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