Настройка Pylons
Материал из DiPHOST.Ru wiki system
Schors (Обсуждение | вклад) (Новая страница: «<meta name="keywords" content="wsgi, python, pylons"></meta> <meta name="description" content="Настройка Pylons"></meta> <meta name="title" content="Нас…») |
Schors (Обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
<meta name="description" content="Настройка Pylons"></meta> | <meta name="description" content="Настройка Pylons"></meta> | ||
<meta name="title" content="Настройка Pylons"></meta> | <meta name="title" content="Настройка Pylons"></meta> | ||
+ | |||
+ | Данное руководство не является документацией по web-фреймворку Pylons. Предполагается, что пользователь данного фреймворка знаком с его основами. | ||
+ | |||
+ | Кроме того, в качестве ORM используется SQLAlchemy. Ввиду того, что это, по-видимому, наиболее популярный и многофункциональный ORM для python, возможность его использования для web-приложений является весьма привлекательной. | ||
+ | |||
+ | Кроме того, данное руководство описывает только процесс запуска pylons-проекта на хостинге. Создание egg-файлов, документации и т.п. не описывается. | ||
+ | |||
+ | ====Версии==== | ||
+ | Используется Pylons 0.9.7 и все идущие вместе с фреймворком пакеты, которые устанавливаются на локальный компьютер при помощи утилиты easy_install. Например, все верно для версий: | ||
+ | * beaker-1.3-py2.5 | ||
+ | * decorator-3.0.0-py2.5 | ||
+ | * formencode-1.2.1-py2.5 | ||
+ | * mako-0.2.4-py2.5 | ||
+ | * nose-0.10.4-py2.5 | ||
+ | * paste-1.7.2-py2.5 | ||
+ | * pastedeploy-1.3.3-py2.5 | ||
+ | * pastescript-1.7.3-py2.5 | ||
+ | * Pygments-1.0-py2.5 | ||
+ | * pylons-0.9.7-py2.5 | ||
+ | * routes-1.10.3-py2.5 | ||
+ | * weberror-0.10.1-py2.5 | ||
+ | * webhelpers-0.6.4-py2.5 | ||
+ | * simplejson-2.0.8-py2.5-win32 | ||
+ | * tempita-0.2-py2.5 | ||
+ | * webob-0.9.6.1-py2.5 | ||
+ | * webtest-1.1-py2.5 | ||
+ | * sqlalchemy-0.5.0-py2.5 | ||
+ | * pysqlite2 | ||
+ | |||
+ | ====Установка==== | ||
+ | |||
+ | # Создаем в домашней директории директорию packages: | ||
+ | <source lang="bash"> | ||
+ | [user@babylon] ~$ mkdir ~/packages | ||
+ | </source> | ||
+ | |||
+ | # Копируем необходимые пакеты с локальной машины в созданную директорию packages (например, при помощи [[AccessFTP]]). | ||
+ | # В public_html директории Вашего WSGI-сайта создаем файл .htaccess следующего содержания: | ||
+ | RewriteEngine On | ||
+ | RewriteRule ^(.*)$ /webapp/$1 [L,QSA] | ||
+ | # На локальной машине создаем конфигурационный файл вашего проекта (для проекта под названием myapp) командой: | ||
+ | <source lang="bash"> | ||
+ | [user@babylon] ~$ paster make-config myapp production.ini | ||
+ | </source> | ||
+ | {{warning|параметр отладки должен быть отключен:<br/> | ||
+ | set debug = false}} | ||
+ | # Всю директорию проекта myapp переносим на сервер (например, в директорию ~/myapp) | ||
+ | # Настраиваем WSGI-коннектор на хостинге. В файл webapp.wsgi в директории webapp WSGI-сайта пишем следующее: | ||
+ | <source lang="py"> | ||
+ | # -*- coding: utf-8 -*- | ||
+ | |||
+ | import sys, os | ||
+ | |||
+ | # Путь к директории пользователя | ||
+ | prefix = os.abspath('~/') | ||
+ | |||
+ | # Делаем нужные пакеты видимыми для интерпретатора | ||
+ | sys.path.insert(0, prefix + 'packages/beaker-1.3-py2.5.egg') | ||
+ | sys.path.insert(0, prefix + 'packages/decorator-3.0.0-py2.5.egg') | ||
+ | sys.path.insert(0, prefix + 'packages/formencode-1.2.1-py2.5.egg') | ||
+ | sys.path.insert(0, prefix + 'packages/mako-0.2.4-py2.5.egg') | ||
+ | sys.path.insert(0, prefix + 'packages/nose-0.10.4-py2.5.egg') | ||
+ | sys.path.insert(0, prefix + 'packages/paste-1.7.2-py2.5.egg') | ||
+ | sys.path.insert(0, prefix + 'packages/pastedeploy-1.3.3-py2.5.egg') | ||
+ | sys.path.insert(0, prefix + 'packages/pastescript-1.7.3-py2.5.egg') | ||
+ | sys.path.insert(0, prefix + 'packages/Pygments-1.0-py2.5.egg') | ||
+ | sys.path.insert(0, prefix + '/packages/pylons-0.9.7-py2.5.egg') | ||
+ | sys.path.insert(0, prefix + 'packages/routes-1.10.3-py2.5.egg') | ||
+ | sys.path.insert(0, prefix + 'packages/sqlalchemy-0.5.0rc1-py2.5.egg') | ||
+ | sys.path.insert(0, prefix + 'packages/weberror-0.10.1-py2.5.egg') | ||
+ | sys.path.insert(0, prefix + 'packages/webhelpers-0.6.4-py2.5.egg') | ||
+ | sys.path.insert(0, prefix + 'packages/simplejson-2.0.8-py2.5-win32.egg') | ||
+ | sys.path.insert(0, prefix + 'packages/tempita-0.2-py2.5.egg') | ||
+ | sys.path.insert(0, prefix + 'packages/webob-0.9.6.1-py2.5.egg') | ||
+ | sys.path.insert(0, prefix + 'packages/webtest-1.1-py2.5.egg') | ||
+ | sys.path.insert(0, prefix + 'myapp/') | ||
+ | |||
+ | os.environ['PYTHON_EGG_CACHE']= prefix + 'myapp/python-eggs' | ||
+ | |||
+ | # Запуск wsgi приложения | ||
+ | from paste.deploy import loadapp | ||
+ | |||
+ | application = loadapp("config:" + prefix + "myapp/production.ini") | ||
+ | </source> | ||
+ | Где ''username'' - это Ваш логин на хостинге. | ||
+ | # Посещаем свою страницу и видим работающее приложение myapp | ||
+ | |||
[[Category:WSGI]] | [[Category:WSGI]] |
Версия 19:10, 3 апреля 2010
Данное руководство не является документацией по web-фреймворку Pylons. Предполагается, что пользователь данного фреймворка знаком с его основами.
Кроме того, в качестве ORM используется SQLAlchemy. Ввиду того, что это, по-видимому, наиболее популярный и многофункциональный ORM для python, возможность его использования для web-приложений является весьма привлекательной.
Кроме того, данное руководство описывает только процесс запуска pylons-проекта на хостинге. Создание egg-файлов, документации и т.п. не описывается.
Версии
Используется Pylons 0.9.7 и все идущие вместе с фреймворком пакеты, которые устанавливаются на локальный компьютер при помощи утилиты easy_install. Например, все верно для версий:
- beaker-1.3-py2.5
- decorator-3.0.0-py2.5
- formencode-1.2.1-py2.5
- mako-0.2.4-py2.5
- nose-0.10.4-py2.5
- paste-1.7.2-py2.5
- pastedeploy-1.3.3-py2.5
- pastescript-1.7.3-py2.5
- Pygments-1.0-py2.5
- pylons-0.9.7-py2.5
- routes-1.10.3-py2.5
- weberror-0.10.1-py2.5
- webhelpers-0.6.4-py2.5
- simplejson-2.0.8-py2.5-win32
- tempita-0.2-py2.5
- webob-0.9.6.1-py2.5
- webtest-1.1-py2.5
- sqlalchemy-0.5.0-py2.5
- pysqlite2
Установка
- Создаем в домашней директории директорию packages:
Process '/usr/local/bin/highlight --fragment --style=jedit --syntax='bash' --style-outfile='/home/dipwiki/tmp/highlight.css'' failed to start?
You need to specify a language like this: <source lang="html">...</source>
Supported languages for syntax highlighting:
(error loading support language list)- Копируем необходимые пакеты с локальной машины в созданную директорию packages (например, при помощи Загрузка файлов на сервер по протоколу FTP).
- В public_html директории Вашего WSGI-сайта создаем файл .htaccess следующего содержания:
RewriteEngine On RewriteRule ^(.*)$ /webapp/$1 [L,QSA]
- На локальной машине создаем конфигурационный файл вашего проекта (для проекта под названием myapp) командой:
Process '/usr/local/bin/highlight --fragment --style=jedit --syntax='bash' --style-outfile='/home/dipwiki/tmp/highlight.css'' failed to start?
You need to specify a language like this: <source lang="html">...</source>
Supported languages for syntax highlighting:
(error loading support language list)- Всю директорию проекта myapp переносим на сервер (например, в директорию ~/myapp)
- Настраиваем WSGI-коннектор на хостинге. В файл webapp.wsgi в директории webapp WSGI-сайта пишем следующее:
Process '/usr/local/bin/highlight --fragment --style=jedit --syntax='py' --style-outfile='/home/dipwiki/tmp/highlight.css'' failed to start?
You need to specify a language like this: <source lang="html">...</source>
Supported languages for syntax highlighting:
(error loading support language list)Где username - это Ваш логин на хостинге.
- Посещаем свою страницу и видим работающее приложение myapp