Python

Материал из 1GbWiki.

(Различия между версиями)
Перейти к: навигация, поиск

Renton (Обсуждение | вклад)
(Новая: Хостинг 1Gb.ru позволяет запускать скрипты написанные на языке [http://www.python.org Python] на всех тарифных планах...)
К следующему изменению →

Версия 16:29, 7 декабря 2013

Хостинг 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 версий.

Также возможно установить любую версию в свой домашний каталог, о чем пойдет речь ниже.

Запуск скриптов на Python

Скрипты могу запускаться в различных режимах, наиболее простой способ - в режиме CGI.

CGI

Для запуска в данном режиме достаточно чтобы скрипт имел расширение .cgi и в начале скрипта был указан путь к интерпретатору (см. shebang).
Пример:

~/http $ cat test_python.cgi
#!/usr/bin/python

print ("Content-type: text/html\n")

print ("hello")

Для того чтобы можно было запускать скрипты с другим расширением, необходимо в ~/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 позволяет поставить и использовать любую версию из своего домашнего каталога. Как это сделать:
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. Например:

  • использование версии 2.7
#!/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/lib/версия_python/site-packages:${PATH}
export PYTHONPATH=${HOME}/local/lib/версия_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/lib/python2.6/site-packages:${PATH}
export PYTHONPATH=${HOME}/local/lib/python2.6/site-packages:${PYTHONPATH}

Проверяем что получилось:

$ source ~/.bashrc

Команды должны показать одинаковый результат:

$ python -V
Python 2.6.9
$ env python -V
Python 2.6.9

virtualenv

virtualenv пакет упрощающий создание окружения Python для вашего проекта (-ов). Он позволяет создать различные среды (своя версия Python, свой набор и версий библиотек) на одной площадке и полностью быть независимым от изменений общесистемных библиотек.


Установка модулей

Личные инструменты