Назад | Перейти на главную страницу

Как заставить OS X Server 5.0 использовать Python 3.5?

El Capitan и OS X Server 5.0 по умолчанию используют Python 2.7. Я установил Python 3.5, но как заставить OS X Server 5.0 использовать его для wsgi, не нарушая зависимости El Capitan от Python 2.7?

По сути, я хочу, чтобы Mac OS X Server 5.0 использовал Python 3.5 вместо Python 2.7.

(Принятый) ответ предоставляется на форумах поддержки Apple: https://discussions.apple.com/thread/7331263?start=0&tstart=0

Мне не приходилось делать это с текущим сервером 5.0, но я делал это раньше с сервером 4.x (сейчас я использую виртуальные машины Linux для такого рода целей, но решение точно такое же, как и для OS X Server).

Во-первых, ни в коем случае не пытайтесь обновить встроенные компоненты любого программного обеспечения Apple, например. Apache, а в вашем случае Python. Хотя это может быть возможно, Apple не только усложняет выполнение таких шагов, добавляя новые меры безопасности, чтобы предотвратить изменение / взлом своего «официального» программного обеспечения без вашего ведома, но при использовании этого подхода очень вероятно, что вы что-то сломаете. особенно интеграция между Server.app и этими компонентами, а также делает вероятным, что установка будущих официальных обновлений Apple либо завершится с ошибкой, либо приведет к понижению того, что вы делали в любом случае.

Итак, как я подразумевал выше, я использовал решение, которое раньше работает и не вызывает описанных выше проблем - по крайней мере, в отношении Python. Подход, который вам необходимо принять, состоит в том, чтобы оставить Python от Apple в покое и вместо этого установить отдельную копию специально для использования с вашим собственным веб-сайтом, действительно, если бы вы запускали несколько веб-сайтов, каждый из которых должен использовать Python, у вас будут отдельные копии Python для каждый сайт, потому что разные проекты на основе Python часто зависят от конкретных версий Python. Это настолько распространено, что существует специальный инструмент под названием VirtualEnv.

Видеть http://docs.python-guide.org/en/latest/dev/virtualenvs/

Как это работает -

  • Вы устанавливаете VirtualEnv
  • Вы запускаете VirtualEnv и создаете виртуальную среду для своего сайта
  • Вы устанавливаете конкретную версию Python, необходимую для вашего веб-сайта, в эту виртуальную среду.
  • Вы устанавливаете все модули Python, необходимые для вашего сайта, в эту виртуальную среду.
  • Вы устанавливаете свой код Python в эту виртуальную среду

Тогда у вас есть соответствующие записи в файле conf вашего веб-сайта для запуска в этой виртуальной среде.

Приняв этот подход, можно одновременно запускать несколько разных версий Python и не допускать их конфликта друг с другом.

Примечание. Чтобы установить VirtualEnv в OS X, сделайте следующее.

sudo easy_install virtualenv

Обратите внимание, что есть много способов установить virtualenv пакет. Я бы использовал пип:

pip install virtualenv

pip поставляется с Python 2.7.9 и новее, и его также можно использовать для добавления дополнительных пакетов в ваш файл virtualenvs. Если у вас нет pip, вы можете легко установить его:

curl -o get-pip.py https://bootstrap.pypa.io/get-pip.py
python get-pip.py