2010-03-26 65 views
3

關於我的文檔last year's question,我現在想要開始並嘗試使用基於Python的Sphinx來整合我一直在努力的PHP CMS的開發者文檔。在App Engine上安裝Sphinx - 可能嗎?

而不是在我的工作站上本地設置Python,我想從一開始就在公共可訪問的Web服務器上運行它。所有我可以在LAMP堆棧上運行的網絡託管軟件包,我不願意購買基於Python的託管服務。我對Google App Engine非常感興趣,他們提供的免費配額將爲我提供超過一百倍的優惠,即使不是,他們的定價看起來也非常合理。

現在我對Python沒有什麼瞭解 - 獲得獅身人面像工作將是我第一次接觸它 - 而且時間很少。據我所知,App Engine提供的平臺和python庫是非常兼容的到標準的Python庫,但不是相同的

所以我的問題是:

  • 可以在App Engine上的所有獅身人面運行?

  • 在App Engine上安裝Sphinx很簡單,就好像我將它安裝在普通的Python安裝之上一樣簡單?或者,App Engine的環境是否需要調整我無法在合理時間內使用當前級別的Python執行的源代碼?

  • 我應該在本地服務器上安裝Sphinx,而首先安裝「普通」Python堆棧嗎?

  • 有沒有人知道任何有用的幫助,教程或其他資源?

回答

3

有趣的項目!您將遇到的主要問題是文件系統訪問:App Engine上的文件系統是隻讀的,基於查看源代碼,Sphinx相當硬編碼以使用文件系統進行輸出。它還希望從本地文件系統讀取配置文件和輸入文件,這將使構建文檔的任何項目與應用程序捆綁在一起非常棘手。

可以解決這個問題,但它需要編寫使用App Engine數據存儲簡單的虛擬文件系統,並使用monkeypatching,使其與普通的Python文件接口工作。對於「Python新手」項目來說這是相當先進的!

如果您想讓用戶上傳需要記錄的項目,您可能需要考慮另一件事:Sphinx配置文件使用Python,因此執行它可能是危險的 - 用戶可能會對您的應用程序做惡劣的事情一個惡意的配置文件!

1

本地通過dev_appserver和遠程通過appcfg已經部署之間的差異 - 在我的經驗 - 僅限於我執行這兩個命令。那就是說,我對斯芬克斯沒有經驗。

6

根本不需要在GAE上安裝Sphinx。

您使用Sphinx創建靜態HTML,CSS和JS的目錄。完成此步驟後,您只需上傳Sphinx的輸出 - 完整。

從一個地方簡單地服務於斯芬克斯(HTML,CSS和JS)的輸出。您將文檔從創建位置上傳到GAE作爲靜態文件並提供。完成。

根本沒有「安裝在網絡服務器上」的方面給獅身人面像。獅身人面像不是一個Web應用程序;它不會在您的Web服務器上運行。你在開發中簡單地運行它,將文檔發佈到HTML,LaTeX或其他。一旦你創建了靜態HTML文件,你不再需要任何地方的Sphinx的任何部分。

獅身人面像可以在App Engine上運行嗎?

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

是在App引擎 那麼簡單,因爲安裝獅身人面像......

不要緊,因爲你不安裝它。您將其安裝在工作站上並在工作站上使用它。

我應該一個 本地服務器上安裝獅身人面像和一個「正常」的Python 堆棧,而不是第一?

請勿將其安裝在服務器上。將它安裝在您的工作站上。

有誰知道任何有用的 怎麼對的,教程或其他資源 這個?

如果「this」的意思是「安裝在web服務器上」,那麼回答是「no」。一個不會將其安裝在Web服務器上。因此,沒有任何方法,教程或資源「安裝在Web服務器上」。

如果「這個」你的意思是「與獅身人面像創建文檔」,那麼答案是「這有什麼錯http://sphinx.pocoo.org?什麼是他們缺乏?


我想獅身人面像的‘引擎’是 變成輸入(包括的reST 文件)到HTML/CSS/JS是 從任何地方訪問,使我 (以及可能的其他貢獻者) 獨立於特定 工作站。

獅身人面像就像一個編譯器。每個人都有自己的副本在他們的工作站上他們下載文檔源文件,進行更改,提交源文件更改並上傳生成的文檔。

從 服務生成的文檔在同一個地方。

正確。在下載源代碼後,進行更改,重新生成文檔並提交更改,然後上載生成的文檔,以便從一個 - 也是唯一一個位置提供。

Sphinx是一個編譯器。它不是一個「網絡引擎」。這是一個簡單的編譯器,只需將您的文檔編譯爲HTML即可投放。

+2

@S。洛特歡呼,我明白獅身人面像的一面。我希望Sphinx的「引擎」將輸入(由reST文件組成)轉換爲HTML/CSS/JS,以便從任何地方訪問,以使我(和其他可能的貢獻者)獨立於特定的工作站。 *加*(如果可能的話,我將不得不看)從相同的地方提供生成的文檔。如果這不是我的目的,我完全看到如何將它安裝到Web服務器上是沒有意義的。 – 2010-03-26 10:04:04

+0

@Pekka聽起來你可能想要你的GAE定期輪詢你的SCM,並自動更新文檔?其他人已經概述了做這些所需的修改。另一種方法是讓您的CI(您正在使用中央構建服務器,對嗎?)每次構建成功時,將最新文檔作爲靜態頁面上載到GAE(或任何地方)。 – prestomation 2010-05-26 19:48:09

+0

Cheers @prestomation,我對這個項目的關注更多的是讓一些人有一箇中心位置來添加文檔,並從那個輸入中編譯文檔。然而,這不是微不足道的,因此我決定暫時安裝一個本地安裝的獅身人面像。 – 2010-05-26 20:27:35

1

Sphinx編譯文檔,在網絡服務器上運行它,就像在Web服務器上運行gcc一樣有意義。

+0

@das我明白這一點。請閱讀我對S.Lott的回覆,以上爲什麼我仍然希望在應用程序引擎上運行它(儘管它開始進入Python時看起來太複雜了。) – 2010-03-27 19:33:59

相關問題