Развертывание приложения Python CGI - PullRequest
1 голос
/ 19 ноября 2009

Я разработал CGI-приложение на Python, которое отлично работает на моей машине для разработки. Однако мой хостинг-провайдер дает мне немного контроля над своим сервером: я использую множество пользовательских вещей в своей среде python (например, sqlalchemy и mako templating), а версия python для серверов слишком устарела для использования. Мой вопрос: как мне настроить изолированную, полную, автономную среду Python в моем домашнем каталоге и установить необходимые модули для запуска моего приложения? ... самый простой способ;)

Ответы [ 4 ]

4 голосов
/ 19 ноября 2009

как настроить изолированную, полную, автономную среду Python в моем домашнем каталоге

  1. mkdir /home/me/.local (если он еще не существует. Вам не нужно использовать .local, но это становится нормальным местом для этого)
  2. mkdir /home/me/.local/src (то же самое)
  3. cd /home/me/.local/src
  4. wget http://python.org/ftp/python/2.6.4/Python-2.6.4.tgz
  5. gzip -d Python-2.6.4.tgz
  6. tar xf Python-2.6.4.tar
  7. cd Python-2.6.4
  8. ./configure --prefix=/home/me/.local
  9. make
  10. make install

Надеюсь, теперь вы можете запустить Python:

  • /home/me/.local/bin/python

Установите нужные вам пакеты, используя обычный скрипт setup.py, но с вашей версией Python:

  • /home/me/.local/bin/python setup.py install

Установите hashbang для файлов CGI для использования вашей версии Python:

  • #!/home/me/.local/bin/python

Подумайте о переносе приложения в WSGI, если можете. Конечно, вы все еще можете развернуть приложения WSGI через CGI, используя wsgiref.handlers.CGIHandler на данный момент, но в будущем, когда у вас будет менее плачевная среда размещения, вы сможете развертывать, используя гораздо менее расточительный интерфейс сервера, такой как mod_wsgi.

1 голос
/ 19 ноября 2009

Я бы использовал pyinstaller , чтобы объединить Python, мой код и все мои зависимости в один исполняемый файл установщика, загрузить его и запустить. Просто убедитесь, что вы используете SVN-магистраль pyinstaller - «выпущенная» версия НАСТОЯТЕЛЬНО устарела.

Имейте в виду, что с SQLAlchemy и всем остальным, с CGI вы можете обнаружить, что вы действительно медлительны, так как вы платите полную стартовую цену при каждом посещении страницы. Но если CGI - это все, что вы можете себе позволить, я думаю, что именно так я и буду пытаться справиться! -)

0 голосов
/ 19 ноября 2009

Я участвую в совместном плане Dreamhost . Помимо CGI, они также предлагают FastCGI , что делает работу намного быстрее, чем CGI. Вы должны проверить, если ваш хостинг-провайдер предлагает это. Или, может быть, они предоставляют Passenger для Ruby , с которым вы могли бы использовать свой Python.

Если вы сами компилируете Python, имейте в виду настройку UCS, если вы пытаетесь установить предварительно скомпилированные пакеты и возникают ошибки. См. Статью StackOverflow . В вики Dreamhost есть несколько советов о том, как вы можете собрать и развернуть Python самостоятельно на их серверах; Возможно, вы захотите приспособиться к вашим потребностям.

0 голосов
/ 19 ноября 2009

Это похоже на работу для virtualenv . С сайта:

Кроме того, что, если вы не можете установить пакеты в глобальный каталог site-packages? Например, на общем хосте.

Это похоже на ваш переулок.

...