2009-08-02 3 views
21

В настоящее время у меня есть несколько версий Python, установленных на моем Mac, тот, который пришел с ним, версию, которую я недавно загрузил из python.org, более старую версию, используемую для запуска Zope локально, а другой версию, которую использует Appengine. Это беспорядок. Любые рекомендации по использованию одной версии python для их правильного управления? Как я могу использовать удаленные старые версии и привязать все мои приложения к одной установке. Любые Mac-специфические ошибки, о которых я должен знать? Это глупая идея?Несколько версий Python на OS X Leopard

+0

Читать это сообщение в блоге: http://farmdev.com/thoughts/66/python-3-0-on-mac-os-x-alongside-2-6-2-5-etc-/ –

ответ

20

Нет ничего неправильного в том, чтобы иметь несколько версий Python. Иногда это необходимо при использовании приложений с зависимостями версий. Вероятно, самая большая проблема связана с зависимостями сайтов-пакетов, которые могут отличаться от приложения к приложению. Такие инструменты, как virtualenv, могут помочь. Одна вещь, которую вы должны не do - попытка удалить поставляемый Apple Python в/System/Library/Frameworks и связанный с/usr/bin/python. (Обратите внимание на недавнее обсуждение нескольких версий here.)

+1

+1 на virtualenv. Я подключился к домашней странице virtualenv. –

1

подход, который я предпочитаю, которая должна работать на всех UNIX-подобной операционной системы:

Создание для каждого приложения, которые нуждаются в конкретных Python версии учетной записи пользователя. Установите в каждом пользователе соответствующую версию python с локальным префиксом пользователя (например, ~/build/python) и добавьте ~/build/bin/в переменную среды PATH пользователя. Установите/используйте свои приложения python у своего правильного пользователя.

Преимущество этого подхода заключается в идеальной изоляции между отдельными установками python и относительно удобном выборе правильной среды python (только su для соответствующего пользователя). Также операционная система остается нетронутой.

9

Ian Bicking's virtualenv позволяет мне изолировать Pythons для каждого приложения, которое я создаю, и позволяет мне решить, включать или не включать глобальные пакеты сайтов в изолированную среду Python.

Я не пробовал с Zope, но я предполагаю, что следующий должен работать хорошо:

  1. Использование Python вашего Zope, делают новый virtualenv, с или без --no-сайта -packages
  2. Бросай Zope в virtualenv
  3. Активируйте среду с $ VENV/бен/активировать
  4. Установите все необходимые сайт-пакеты
  5. Выполнить свой Zope, используя Python теперь в $ VENV/бен/питон

Это прекрасно работало для управления проектами Django с различными версиями Python, Django и надстроек.

This article, по-видимому, более подробно описывает особенности Grok и Virtualenv, но общие соображения должны применяться к Zope как welll.

2

+1 для virtualenv.

Даже если вам не нужны разные версии Python, все равно полезно сохранять зависимости развития от вашей системы Python.

Я не уверен, какую ОС вы используете, но я нахожу инструкции these очень полезными для получения среды разработки python, работающей на OSX.

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

  • Нет связанных вопросов^_^