Раздел помощи SpaceWeb

Python

Python — это один из наиболее популярных современных языков программирования. Он пригоден для решения разнообразных задач и предлагает те же возможности, что и другие языки программирования: динамичность, поддержку ООП и кросс-платформенность. 

Версии Python на хостинге Spaceweb

На данный момент на наших серверах виртуального хостинга установлено 3 версии Python.  Это Python 2.7, 3.3, 3.4, 3.8. Точные версии можно узнать командами:

$ python2.7 -V
Python 2.7.7
$ python3.3 -V
Python 3.3.5
$ python3.4 -V
Python 3.4.1
$ python3.8 -V
Python 3.8.5*

* Версия Python 3.8.5 работает на версии Apache 2.4 + PHP 8 opcache + mod_wsgi python3.8, должна быть включена в настройках сайта.

Запуск скрипта python через CGI

CGI (от англ. Common Gateway Interface — «общий интерфейс шлюза») — стандарт интерфейса, используемого для связи внешей программы с веб-сервером. Программу, которая работает по такому интерфейсу совместно с веб-сервером, принято называть шлюзом, хотя многие предпочитаю названия «скрипт»(сценарий) или «CGI-программа».

Для запуска скриптов python через CGI необходимо выполнить следующие действия:

  1. Добавить в файл .htaccess директиву:

AddHandler cgi-script .py

  1. Указать первой строкой в скрипте путь к используемому интерпретатору. Так называемый shebang.    

#!/usr/bin/python2.7

для использования python 2.7.5 или другую версию

  1. Указать расширение для файла *.py и выставить на файл права доступа 755.

Запуск скрипта python через mod_wsgi

WSGI (англ. Web Server Gateway Interface) — стандарт взаимодействия между Python-программой, выполняющейся на стороне сервера, и самим веб-сервером, например, Apache.
Стандарт интерфейса (на английском): http://www.python.org/dev/peps/pep-0333/

По стандарту, WSGI-приложение должно удовлетворять следующим требованиям:

  • должно быть вызываемым (callable) объектом (обычно это функция или метод);
  • принимать два параметра:
    • словарь переменных окружения (environ);
    • обработчик запроса (start_response);
  • вызывать обработчик запроса с кодом HTTP-ответа и HTTP-заголовками;
  • возвращать итерируемый объект с телом ответа;

Пример простого wsgi-приложения:

def application(environ, start_response):
 start_response('200 OK', [('Content-Type', 'text/plain')])
 return 'Hello World'

Используемая версия python для mod_wsgi

На наших серверах mod_wsgi на Apache 2.2 + mod_passenger + mod_wsgi (Актуальная версия) использует версию python 2.7.5

На Apache 2.4 + PHP 8 opcache + mod_wsgi python3.8 использует версию python 3.8.5