Установка Sphinx на App Engine - возможно? - PullRequest
3 голосов
/ 26 марта 2010

В ответ на мой прошлогодний вопрос по документации, теперь я хочу начать и попробовать Python Sphinx на основе Python для составления документации для разработчиков для PHP CMS I ' мы работаем над.

Вместо локальной настройки Python на моей рабочей станции, я хотел бы запустить его на общедоступном веб-сервере с самого начала. Все пакеты веб-хостинга у меня есть доступ для запуска в стеке LAMP, и я не хочу покупать хостинг на основе Python. Я очень заинтересован в Google App Engine, бесплатные квоты, которые они предоставляют, подойдут для меня в сто раз, и даже если нет, их цена выглядит очень разумной.

Теперь у меня нулевое знание Python - заставить Сфинкса работать, это будет мой первый контакт с ним - и очень мало времени. Насколько я понимаю, библиотеки платформы и python, предоставляемые App Engine, очень совместимы со стандартной библиотекой Python, но не идентичны .

Итак, мой вопрос:

  • Может ли Sphinx работать на App Engine вообще?

  • Установка Sphinx на App Engine так же проста, как если бы я устанавливал его поверх обычной установки Python? Или среда App Engine потребует доработки исходного кода, который я не могу выполнить в разумные сроки с моим текущим уровнем Python?

  • Стоит ли сначала устанавливать Sphinx на локальный сервер и вместо него "нормальный" стек Python?

  • Кто-нибудь знает какие-нибудь полезные инструкции, руководства или другие ресурсы для этого?

Ответы [ 4 ]

6 голосов
/ 26 марта 2010

Вам вообще не нужно устанавливать Sphinx на GAE.

Вы используете Sphinx для создания каталога статических HTML, CSS и JS. Когда этот шаг закончен, вы просто загружаете вывод из Sphinx - полностью.

Вывод из Sphinx (HTML, CSS и JS) просто подается из одного места . Вы загружаете документацию, из которой вы ее создали, в GAE как статические файлы и обслуживаете их. Готово.

В Sphinx нет никакого аспекта «установки на веб-сервере». Сфинкс не является веб-приложением; он не работает на вашем веб-сервере. Вы запускаете его в процессе разработки, чтобы опубликовать документацию в HTML, LaTeX или где-либо еще. После того, как вы создали статические HTML-файлы, вам больше не понадобится ни одна часть Sphinx.

Может ли Sphinx работать на App Engine вообще?

Полагаю, это возможно, но вам это никогда не нужно.

Устанавливает Sphinx в App Engine так же просто, как ...

Это не имеет значения, потому что вы не устанавливаете его там. Вы устанавливаете его на свою рабочую станцию ​​и используете на своей рабочей станции.

Должен ли я устанавливать Sphinx на локальный сервер и "нормальный" питон стек вместо первого?

Не устанавливайте его на сервере. Установите его на свою рабочую станцию.

Кто-нибудь знает что-нибудь полезное Как, учебники или другие ресурсы за это?

Если под «этим» подразумевается «установка на веб-сервере», то ответ «нет». Один не устанавливает его на веб-сервере. Таким образом, нет никаких инструкций, учебных пособий или ресурсов для «установки на веб-сервере».

Если под «этим» вы подразумеваете «создание документации с помощью Sphinx», то ответ «что не так с http://sphinx.pocoo.org? Чего им не хватает?


Я бы хотел "двигатель" Сфинкса, который поворачивает вход (состоящий из reST файлы) в HTML / CSS / JS, чтобы быть доступны из любого места, чтобы сделать меня (и, возможно, другие участники) независимо от конкретного рабочая станция.

Sphinx похож на компилятор. У каждого есть своя копия на своей рабочей станции. Они загружают источник документа, вносят изменения, фиксируют изменения источника и загружают полученный документ.

обслуживать сгенерированную документацию из там же.

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

Sphinx - это компилятор. Это не «веб-движок». Это простой компилятор, который просто компилирует вашу документацию в HTML, чтобы ее можно было обслуживать.

3 голосов
/ 26 марта 2010

Интересный проект! Основная проблема, с которой вы столкнетесь, - это доступ к файловой системе: файловая система в App Engine доступна только для чтения, и, основываясь на взгляде на источник, Sphinx достаточно жестко запрограммирован для использования файловой системы для вывода. Ожидается также чтение файла конфигурации и входных файлов из локальной файловой системы, что сделает создание документации для всего, кроме проектов, связанных с приложением, сложным.

Это возможно , чтобы обойти это, но это потребует написания простой виртуальной файловой системы, которая использует хранилище данных App Engine, и использования monkeypatching , чтобы заставить его работать с обычным Python Файловый интерфейс. Это довольно продвинуто для проекта "новичок в Python"!

Еще одна вещь, которую вы могли бы рассмотреть, если бы задумывались о том, чтобы разрешить пользователям загружать проекты для документирования: файл конфигурации Sphinx находится на Python, поэтому его выполнение может быть опасным - пользователь может делать неприятные вещи с вашим приложением с помощью вредоносный файл конфигурации!

1 голос
/ 27 марта 2010

Sphinx компилирует документацию, запуск ее на веб-сервере имеет такой же смысл, как и запуск gcc на веб-сервере.

1 голос
/ 26 марта 2010

Разница между развертыванием локально через dev_appserver и удаленно через appcfg, по моему опыту, ограничена тем, какую из двух команд я выполняю. Тем не менее, у меня нет опыта работы со сфинксом.

...