Настройка среды веб-разработки Python на OS X - PullRequest
2 голосов
/ 05 ноября 2008

Я использую Mac OS X Leopard и хотел знать, каков простой способ настройки среды веб-разработки для использования Python, MySQL, Apache на моей машине, что позволило бы мне разрабатывать на моем Mac а затем легко перенести его на хост в будущем.

Я пытался установить и настроить mod_wsgi для работы с Django, и у меня теперь болит голова. Есть ли какие-либо веб-хосты, которые в настоящее время используют mod_wsgi помимо Google, так что я мог бы просто разработать там?

Ответы [ 10 ]

2 голосов
/ 06 ноября 2008

FWIW, мы обнаружили, что virtualenv [http://pypi.python.org/pypi/virtualenv] является неоценимой частью нашей настройки dev. Обычно мы работаем над несколькими проектами, в которых используются разные версии библиотек Python и т. Д. Это очень трудно сделать на одной машине без какого-либо способа обеспечить локализованную, настраиваемую среду Python, как в virtualenv.

2 голосов
/ 05 ноября 2008

Большинство приложений Python отходят от mod_python. Он может варьироваться в зависимости от платформы или поставщика, но большая часть усилий по разработке уходит на mod_wsgi.

Использование стандарта WSGI сделает ваш сервер приложений Python независимым и позволит добавить другие приятные дополнения, такие как промежуточное программное обеспечение WSGI. Другие провайдеры могут предоставлять только CGI (что не очень хорошо масштабируется) или FastCGI .

1 голос
/ 09 ноября 2008

Я использую виртуальную машину Linux на своем ноутбуке Mac. Это позволяет мне идеально синхронизировать среду разработки и производственную среду (и делать снимки для облегчения экспериментов / отката). Я обнаружил, что VMWare Fusion работает лучше всего, но есть бесплатные альтернативы с открытым исходным кодом, такие как VirtualBox , если вы хотите просто намочить ноги.

Я делюсь папками с исходными текстами из гостевой операционной системы Linux на моем Mac и редактирую их с помощью редактора исходных текстов Mac по своему выбору (я использую Eclipse / PyDev , потому что в остальном отличный TextMate пока плохо справляется с китайским текстом). Я задокументировал настройку программного обеспечения для гостевой операционной системы Linux здесь ; он оптимизирован для обслуживания нескольких Django приложений (включая geodjango).

Для дополнительного удовольствия вы можете отредактировать файл Mac / etc / hosts, чтобы yourdomainname.com соответствовал внутреннему IP-адресу вашего гостевого Linux-бокса, и иметь простой способ работать / тестировать несколько веб-проектов онлайн или офлайн, не слишком много хлопот.

1 голос
/ 05 ноября 2008

Я работал с Django , используя только включенный сервер в сценарии manager.py, и у меня не было никаких проблем при переходе в производственную среду.

Если вы разместите свое приложение на хосте, который выполняет настройку среды (например, WebFaction ), у вас не должно возникнуть проблем при переходе от разработки к производству.

0 голосов
/ 09 марта 2009

mod_wsgi действительно, очень просто.

Pyerweb - это действительно простая (~ 90 строк, включая комментарии / пробелы) WSGI-совместимая структура маршрутизации, которую я написал. В основном API WSGI - это просто функция, которая передается environ и wsgi_start_response и возвращает строку.

envrion является диктовкой с информацией о запросе, например, environ['PATH_INFO'] является URI запроса)

wsgi_start_response - вызываемая функция, которую вы выполняете для установки заголовков:

wsgi_start_response(output_response, output_headers)

output_response - это строка, содержащая статус HTTP, который вы хотите отправить (200 OK и т. Д.), А output_headers - это список кортежей, содержащий ваши заголовки (например, [("Content-type", "text/html")] установит content- тип)

Затем функция возвращает строку, содержащую ваш вывод. Вот и все!

Чтобы запустить его, используя spawning, вы можете просто сделать spawn scriptname.my_wsgi_function_nae, и он начнет прослушивать порт 8080.

Чтобы использовать его через mod_wsgi, его документация хороша, http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide и есть специальный раздел django

Преимущество использования mod_wsgi - это стандарт для обслуживания веб-приложений Python. Недавно я решил поиграть с Google App Engine, и был удивлен, когда Pyerweb (с которым я связался в начале этого ответа) сработал на отлично , совершенно непреднамеренно. Я был еще более впечатлен, когда заметил, что приложения Django работают на нем тоже. Стандартизация - это хорошо!

0 голосов
/ 09 марта 2009

Check WebFaction - хотя я ими не пользуюсь (и при этом я не имею отношения к / извлекаю выгоду из их бизнеса). Я много раз читал о том, насколько хорош их сервис, и, в частности, насколько они дружелюбны Django . На их форумах есть сообщение о том, как начать работать с Django и mod_wsgi.

Как и другие до меня в этой теме, я настоятельно рекомендую использовать virtualenv Яна Бикинга для изоляции вашей среды разработки; В документации mod_wsgi есть специальная страница для именно такой настройки.

Я также призываю вас проверить pip , который по сути является более умным easy_install, который знает о virtualenv. Пип делает две действительно приятные вещи для разработки в стиле virtualenv:

  • Умеет устанавливать из системы контроля версий ( SVN , Git и т. Д ...)
  • Знает, как "заморозить" требования существующей среды разработки, чтобы вы могли создать эту среду где-то еще - очень хорошо для нескольких разработчиков или развертывания.
0 голосов
/ 06 ноября 2008

Вы можете посмотреть на web2py . Он включает в себя интерфейс администрирования для разработки через ваш браузер. Все, что вам нужно в одном пакете, включая Python .

0 голосов
/ 05 ноября 2008

Конечно, Mac OS X в последних версиях поставляется с Python и Apache. Однако вам может потребоваться больше гибкости в версиях, которые вы используете, или вам могут не понравиться изменения, внесенные Apple в способ их настройки. Хороший способ получить более общий набор инструментов, включая MySQL, - это установить их заново. Это поможет вам решить проблемы с переносимостью. Платформы можно относительно легко установить с одним из этих поставщиков пакетов с открытым исходным кодом.

0 голосов
/ 05 ноября 2008

Google App Engine сделал это за вас. Некоторые ограничения, но это прекрасно работает, и это дает вам путь к бесплатному хостингу.

0 голосов
/ 05 ноября 2008

То, что вы ищете, это Mod_Python. Это интерпретатор на основе Apache для Python. Проверьте это здесь:

http://www.modpython.org/

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