Я разработал приложение CGI для Python, которое отлично работает в моей области разработки. Однако мой хостинг-провайдер дает мне небольшой контроль над своим сервером: я использую множество настраиваемых материалов в моей среде python (например, sqlalchemy и mako templating), а версия python для серверов слишком старая, чтобы ее можно было использовать. Мой вопрос: как настроить изолированную, полную автономную среду python в моем домашнем каталоге и установить необходимые модули для запуска моего приложения? ... самый простой способ;)Развертывание приложения CGI python
ответ
как я создал изолированный, полный, автономный окружение питона в моем домашнем каталоге
mkdir /home/me/.local
(если он еще не существует.Вы не должны использовать.local
но он становится нормальным местом, чтобы поместить это)mkdir /home/me/.local/src
(Ditto)cd /home/me/.local/src
wget http://python.org/ftp/python/2.6.4/Python-2.6.4.tgz
gzip -d Python-2.6.4.tgz
tar xf Python-2.6.4.tar
cd Python-2.6.4
./configure --prefix=/home/me/.local
make
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
.
большое спасибо: это сработало отлично! – akosch
Это выглядит как работа для virtualenv. На сайте:
Также, если вы не можете установить пакеты в каталог глобальных сайтов-пакетов? Например, на общем хосте.
Это выглядит как раз вверх по вашей аллее.
Я нашел это сам, и это не то, что мне нужно: я не хочу использовать систему Python version ... Мне нужна отдельная среда с моим собственным Python, а не только с разными libs. – akosch
Вот что приятно о virtualenv. Вам не нужно использовать Python-версию системы. Вы можете использовать любой бинарный Python, который вы хотите, пока вы можете выполнить его в своей системе. Virtualenv позволяет полностью изолировать среды исполнения для разных проектов или в этом случае от системы в целом. Каждый virtualenv, который вы создаете, является полностью отдельным экземпляром Python. Если вы этого хотите, у вас может быть один для каждого проекта, приложения или демона. Вот видео-учебник, который иллюстрирует, как легко его использовать: http://showmedo.com/videotutorials/video?name=2910000&fromSeriesID=291 – jathanism
sry, если я был неясен: я не могу использовать virtualenv или easy_install, потому что им нужен python работать, и у меня нет рабочей среды python в этой системе. Мне нужно настроить python с нуля в моем домашнем каталоге – akosch
В вашей обуви я бы использовал pyinstaller, чтобы связать Python, мой код и все мои зависимости в один исполняемый файл установщика, загрузить его и запустить. Просто не забудьте использовать SVN-ствол pyinstaller - «выпущенная» версия WAY устарела.
Помните, что с помощью SQLAlchemy и всего остального с CGI вы можете обнаружить, что вы очень медленны, так как вы платите полную стоимость запуска каждый раз, когда страница посещается. Но если CGI - это все, что вы можете себе позволить, я думаю, что так я попытаюсь справиться! -)
Я нахожусь на общем плане. Помимо CGI, они также предлагают FastCGI, что делает вещи намного быстрее, чем CGI. Вы должны проверить, предлагает ли ваш хостинг-провайдер это. Или, может быть, они предоставляют Passenger for Ruby, чтобы вы могли скомпоновать свой Python.
Если вы скомпилируете Python самостоятельно, имейте в виду настройку UCS, если вы пытаетесь установить предварительно скомпилированные пакеты и испытывать сбои. См. StackOverflow article. В вики вики Dreamhost есть несколько советов о том, как вы могли бы на своем сервере: build and deploy Python; вы можете адаптироваться к вашим потребностям.
- 1. Развертывание Python через CGI
- 2. Развертывание приложения Python на cPanel через CGI - ошибка SuExec & 500
- 3. Развертывание приложения Yesod как программа CGI
- 4. Развертывание Django без CGI?
- 5. Развертывание приложения Python
- 6. Развертывание приложения командной строки Python
- 7. Развертывание приложения Python для AWS
- 8. Распространять развертывание веб-приложения python
- 9. Развертывание флеш-приложения для общедоступного хостинга Apache
- 10. Python cgi on OpenShift
- 11. Python CGI с API
- 12. Развертывание настольного приложения Python для Web
- 13. Развертывание приложения со встроенным Python 3
- 14. Развертывание приложения в Google App Engine (python)
- 15. развертывание приложения Python от разработчика PHP
- 16. Развертывание приложения
- 17. Развертывание приложения
- 18. Развертывание приложения Web2py
- 19. Выполнение CGI Python из/cgi-bin/folder
- 20. Развертывание флеш-приложения для общего хостинга на godaddy
- 21. Развертывание приложения Django в Heroku
- 22. Развертывание приложения Django
- 23. python cgi не загружается
- 24. CGI Module - Python
- 25. Составитель Python CGI
- 26. Python CGI transaction
- 27. CGI Python os.system
- 28. Python CGI URL Redirect
- 29. Python cgi или wsgi
- 30. Вопросы Python CGI
Что вы контролируете на своем хосте? Какой сервер вы используете? Можете ли вы написать произвольные конфиги для сервера? Какая операционная система и архитектура - ваш хост? Эти детали необходимы, но не достаточные условия для получения хорошего ответа. –
У меня есть контроль над моей домашней директорией, включая ~/public_html, мой провайдер использует apache, и я не могу получить доступ к его основным файлам конфигурации, но он настроен отлично для базового CGI. У хоста есть определенный пользовательский linux, установленный в поле x86_64 – akosch
Это поможет добавить к заголовку вопрос «на сервере без доступных python». Люди, видящие этот вопрос, которого лучше всего обслуживают virtualenv, не будут видеть этот ответ из-за ваших необычных требований. –