在App Engine上安装Sphinx - 可能吗?

时间:2010-03-26 09:48:12

标签: python google-app-engine python-sphinx

关注我的last year's question文档,我现在想要开始并尝试基于Python的Sphinx,以便汇总我一直在研究的PHP CMS的开发人员文档。< / p>

我不想在我的工作站上本地设置Python,而是希望从一开始就在可公开访问的Web服务器上运行它。我有权访问LAMP堆栈上的所有Web托管包,我不愿意购买基于Python的托管。我对Google App Engine非常感兴趣,他们提供的免费配额将为我做一百次,即使没有,他们的定价看起来也很合理。

现在我对Python一无所知 - 让Sphinx工作是我第一次接触它 - 而且时间很短。据我所知,App Engine提供的平台和python库与标准Python库非常兼容,但不是相同的

所以我的问题是:

  • Sphinx可以在App Engine上运行吗?

  • 在App Engine上安装Sphinx就像我在普通的Python安装上安装它一样简单吗?或者,App Engine的环境是否需要调整我在当前Python级别上无法在合理时间内执行的源代码?

  • 我应该首先在本地服务器和“普通”Python堆栈上安装Sphinx吗?

  • 有人知道任何有用的操作方法,教程或其他资源吗?

4 个答案:

答案 0 :(得分:6)

您根本不需要在GAE上安装Sphinx。

您使用Sphinx创建静态HTML,CSS和JS的目录。完成此步骤后,您只需上传Sphinx的输出 - 完整。

Sphinx(HTML,CSS和JS)的输出只需从一个地方 >。您将文档从创建它的位置上传到GAE作为静态文件并提供它们。完成。

Sphinx根本没有“在Web服务器上安装”的方面。 Sphinx不是一个Web应用程序;它不会在您的Web服务器上运行。您可以在开发中简单地运行它以将文档发布到HTML,LaTeX或其他任何内容。一旦创建了静态HTML文件,就不再需要Sphinx的任何部分了。

  

Sphinx可以在App Engine上运行吗?

我想它可以,但你永远不需要。

  

在App Engine上安装Sphinx   像......一样直截了当。

没关系,因为你没有在那里安装它。您将它安装在工作站上并在工作站上使用它。

  

我应该安装Sphinx吗?   本地服务器和“普通”Python   首先堆叠?

请勿将其安装在服务器上。将它安装在您的工作站上。

  

有人知道任何有用的   操作方法,教程或其他资源   对此?

如果“this”表示“在Web服务器上安装”,则回答为“no”。一个不会将其安装在Web服务器上。因此,没有“在Web服务器上安装”的操作方法,教程或资源。

如果用“this”表示“用Sphinx创建文档”,那么答案就是“http://sphinx.pocoo.org出了什么问题?他们缺少什么?”


  

我想要Sphinx的“引擎”   转动输入(由reST组成)   文件)到HTML / CSS / JS中   从任何地方都可以访问我   (以及可能的其他贡献者)   独立于特定的   工作站。

Sphinx就像一个编译器。每个人都在自己的工作站上有自己的副本。他们下载文档源,进行更改,提交源更改,并上传生成的文档。

  

提供生成的文档   同一个地方。

正确。下载源代码,进行更改,重新生成文档并提交更改后,您上传生成的文档,以便从一个地方(仅一个地方)提供服务。

Sphinx是一个编译器。它不是“网络引擎”。它是一个简单的编译器,只需将您的文档编译为HTML,即可提供服务。

答案 1 :(得分:3)

有趣的项目!您将遇到的主要问题是文件系统访问:App Engine上的文件系统是只读的,并且基于查看源代码,Sphinx相当硬编码以使用文件系统进行输出。它还希望从本地文件系统读取配置文件和输入文件,这将使得与应用程序捆绑的项目之外的任何东西构建文档都很棘手。

可以解决这个问题,但是需要编写一个使用App Engine数据存储区的简单虚拟文件系统,并使用monkeypatching使其与常规Python文件一起使用接口。对于“新到Python”项目而言,这是相当先进的!

如果您正在考虑允许用户上传要记录的项目,您可能还需要考虑另一件事:Sphinx配置文件是用Python编写的,因此执行它可能很危险 - 用户可能会对您的应用程序执行令人讨厌的事情恶意配置文件!

答案 2 :(得分:1)

根据我的经验,本地部署dev_appserver和远程appcfg之间的区别仅限于我执行的两个命令中的哪一个。那就是说,我对Sphinx没有经验。

答案 3 :(得分:1)

Sphinx编译文档,在网络服务器上运行它就像在网络服务器上运行gcc一样有意义。