|
Хостинг 1Gb.ru позволяет запускать скрипты написанные на языке Python на всех тарифных планах за исключением тарифа "ПРОСТО".
[править] Версии PythonНа серверах виртуального хостинга может быть установлено одновременно несколько версий Python. Посмотреть доступные версии можно командой: $ ls -l /usr/bin/python[0-9] lrwxrwxrwx 1 root root 9 Jan 8 2013 /usr/bin/python2 -> python2.7 lrwxrwxrwx 1 root root 9 Dec 10 2012 /usr/bin/python3 -> python3.2 Из данного примера видно, что установлены Python 2.7 и 3.2 версий. Соответственно, точные версии можно посмотреть командами: $ python3 -V Python 3.2.3 $ python2 -V Python 2.7.3 Также возможно установить любую версию в свой домашний каталог, о чем пойдет речь ниже. [править] Запуск скриптов на PythonСкрипты могу запускаться в различных режимах, наиболее простой способ - в режиме CGI. [править] CGIДля запуска в данном режиме достаточно чтобы скрипт имел расширение .cgi и в начале скрипта был указан путь к интерпретатору (см. shebang). Пример: #!/usr/bin/python
print ("Content-type: text/html\n")
print ("hello")
ВАЖНО: ПЕРЕВОДЫ СТРОК В ФАЙЛЕ ДОЛЖНЫ БЫТЬ В LINUX ФОРМАТЕ (погуглите про это!), файл после Notepad не подойдет. Для того, чтобы можно было запускать скрипты с другим расширением, необходимо в ~/http/.htaccess добавить: AddHandler cgi-script .py и на файл установить права доступа 755 $ chmod 755 test_python.py [править] FastCGIДля запуска в этом режиме необходимо в личном кабинете в разделе "Управление сайтами и серверами" переключить сайт на сервер "UNIX / Apache PHP5 (fastcgi)"; смена типа сервера займет около часа. Расширение у файла должно быть .fcgi [править] mod_wsgiПоддержка модуля mod_wsgi возможна при использовании опции "собственный Apache" из раздела кабинета "Хостинг HTTP служб". В этом случае вы получаете полный контроль к файлам настройки сервера Apache, что позволяет вам создать любую конфигурацию. [править] Установка собственной версииОбщесистемно не всегда возможно обновить Python на сервере, но среда хостинга 1Gb.ru позволяет поставить и использовать любую версию из своего домашнего каталога. Рекомендуем использовать метод установки из статьи Django - быстрый старт (поддерживаемая версия) пункты 2-3 абзаца "подготовка окружения".
1. Создаем каталог для исходных текстов: $ mkdir ~/src && cd ~/src 2. С сайта python.org скачиваем архив с исходниками. Пример ниже показывает команды для версии 2.6.9, в вашем случае версия может быть любой. $ wget http://python.org/ftp/python/2.6.9/Python-2.6.9.tgz 3. Распаковка: $ tar xvfz Python-*.tgz && cd Python-* 4. Компиляция и установка в каталог ~/local $ ./configure --prefix=$HOME/local --disable-ipv6 && make && make install 5. Если установка завершилась успешно, следующая команда покажет вам версию Python: $ ~/local/bin/python -V Python 2.6.9 [править] Настройка окружения; выбор версии по умолчанию[править] shebangВ простейшем случае для использования какой-либо определенной версии Python достаточно явно указать версию в shebang. Например:
#!/usr/bin/python2.7
import sys
print ("Content-type: text/html\n")
print (sys.version)
#!/home/virtwww/FTP_логин/local/bin/python
import sys
print ("Content-type: text/html\n")
print (sys.version)
[править] Переменные окруженияДля полноценной работы приложения с нестандартным расположением Python и его библиотек необходимо настроить различные переменные окружения, которые, собственно, и будут указывать, где искать (или инсталлировать) тот или иной модуль. Приведенные команды покажут, как настроить пути для собственной версии Python, пример установки которого приводился выше. 1. В файл ~/.bashrc с помощью редактора добавляем alias на нашу версию Python alias python=$HOME/local/bin/python а также PATH и PYTHONPATH export PATH=${HOME}/local/bin:${HOME}/local/lib64/версия_python/site-packages:${PATH}
export PYTHONPATH=${HOME}/local/lib64/версия_python/site-packages:${PYTHONPATH}
Таким образом полностью ваш ~/.bashrc может быть таким: # /etc/skel/.bashrc
#
# This file is sourced by all *interactive* bash shells on startup,
# including some apparently interactive shells such as scp and rcp
# that can't tolerate any output. So make sure this doesn't display
# anything or bad things will happen !
alias python=$HOME/local/bin/python
# Test for an interactive shell. There is no need to set anything
# past this point for scp and rcp, and it's important to refrain from
# outputting anything in those cases.
if [[ $- != *i* ]] ; then
# Shell is non-interactive. Be done now!
return
fi
# Midnight Commander chdir enhancement
if [ -f /usr/share/mc/mc.gentoo ]; then
. /usr/share/mc/mc.gentoo
fi
# Put your fun stuff here.
export PERL5LIB=${HOME}/perl/lib64/perl5:${HOME}/perl/lib64/perl5/site_perl:${HOME}/perl/lib64/perl5/vendor_perl
export PATH=${HOME}/local/bin:${HOME}/local/lib64/python2.6/site-packages:${PATH}
export PYTHONPATH=${HOME}/local/lib64/python2.6/site-packages:${PYTHONPATH}
Проверяем что получилось: $ source ~/.bashrc Команды должны показать одинаковый результат: $ python -V Python 2.6.9 $ env python -V Python 2.6.9 2. Для того чтобы web-приложение использовало нашу версию Python, в shebang указываем полный путь: #!/home/virtwww/FTP_логин/local/bin/python Также потребуется указать PYTHONPATH, это можно сделать непосредственно в коде приложения, например, используя sys.path.insert или через .htaccess (работает только на типе сервера Apache/CGI, Apache/FastCGI) SetEnv PYTHONPATH /полный_путь [править] virtualenvvirtualenv пакет упрощающий создание окружения Python для вашего проекта (-ов). Он позволяет создать различные среды (своя версия Python, свой набор и версий библиотек) на одной площадке и полностью быть независимым от изменений общесистемных библиотек. Следующие команды приведены для случая, когда установлена своя версия Python в домашний каталог и настроены переменные окружения в файле .bashrc, если используется системный Python, то для при установке virtualenv необходимо указать опцию --prefix (см. ниже пункт 3.1) и иметь настроенное окружение для установки пакетов свой домашний каталоге (подробнее см. ниже раздел "установка модулей"). Рекомендуем использовать метод установки из статьи Django - быстрый старт (поддерживаемая версия) пункты 2-3 абзаца "подготовка окружения".
1. Итак, скачиваем с https://pypi.python.org/pypi/virtualenv последнюю версию пакета virtualenv $ cd ~/src && wget https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.10.1.tar.gz 2. Распаковка: $ tar xvfz virtualenv-*.tar.gz && cd virtualenv-* 3. Устанавливаем в ~/local, этот тот же каталог, куда ранее был установлен Python $ python setup.py install 3.1. Если используется системный Python или не установлены соответствующие переменные окружения, то скрипту инсталляции нужно сообщить через опцию --prefix место установки и задать PYTHONPATH (подробнее см. ниже раздел "установка модулей"). Например, ставим virtualenv в каталог ~/local $ export PYTHONPATH=$HOME/local/lib64/python`python -c 'import sys; print (sys.version[:3])'`/site-packages && mkdir -p $PYTHONPATH $ python setup.py install --prefix=~/local Основные опции при создании окружения командой: --python - полный путь к интерпретатору python; --clear - очистка существующего окружения, при этом будут удалены все ранее установленные модули в данное окружение; --no-site-packages - не использовать модули установленные в системный каталог site-packages, эта опция включена по умолчанию; --system-site-packages - использовать системные модули из каталога site-packages; --prompt - имя окружения выводимое в переменной PROMPT шелла; Создание нового окружения на основе ранее установленного Python: $ virtualenv -p $HOME/local/bin/python myenv2.6 Перейти в созданное окружение: $ source ~/myenv2.6/bin/activate Установка пакетов: $ easy_install название_пакета или $ pip название_пакета Выйти из окружения: $ deactivate [править] Установка модулейДля Python реализовано несколько менеджеров и способов установки пакетов. Наиболее популярными являются easy_install (пакет setuptools), pip, или методом distutils. Чтобы пакеты устанавливались в домашний каталог, а не в корневую файловую систему (куда доступа на запись нет), необходимо создать файл конфигурации .pydistutils.cfg описыващий пути установки. Пример конфигурации для установки пакетов в каталог ~/local $ cat > ~/.pydistutils.cfg <<END [install] prefix = \$HOME/local [easy_install] install_dir = \$HOME/local/lib64/версия_python/site-packages END Установка пакета через easy_install: $ easy_install flup Установка через скрипты distutils: $ python setup.py install [править] См. также
[править] Ссылки
|
|




