2014-02-16 49 views
4

我的項目沒有使用autodoc構建。我遇到了this frequently asked question about my project not building in autodoc。但是,一些依賴關係包括不會在構建文檔服務器上執行的c代碼。所以我讀了這個blog explaining that I should use mock的方法。這涉及到stackoverflow問題'如何模擬這麼從x導入工作'。我該如何設置閱讀文檔以便Sphinx autodoc選項有效?

在閱讀文檔的管理頁面的高級設置部分,有一個選項可以使用我檢查過的virtualenv,然後請求我的項目根目錄到requirements.txt的路徑。當我使用 「GatherNews/requirements.txt」 作爲路徑

GatherNews/ 
    requirements.txt 

項目目錄的結構爲。我收到錯誤:

/var/build/user_builds/gathernews/checkouts/latest/docs/api/grss.rst:10:警告:autodoc:無法從模塊u'gathernews中導入類u'CaptureFeeds'。 GRSS「;下列異常發生:

回溯(最近通話最後一個):

文件「/home/docs/checkouts/readthedocs.org/user_builds/gathernews/envs/latest/local/lib/python2.7 /site-packages/sphinx/ext/autodoc.py 「線路335,在import_object 進口(self.modname)

文件」 /home/docs/checkouts/readthedocs.org/user_builds/gathernews/envs/ latest/local/lib/python2.7/site-packages/gathernews/init .py「,line 1,in import gRSS

文件 「/home/docs/checkouts/readthedocs.org/user_builds/gathernews/envs/latest/local/lib/python2.7/site-packages/gathernews/gRSS.py」 38行,在進口feedparser

ImportError:沒有模塊命名爲feedparser /var/build/user_builds/gathernews/checkouts/latest/docs/_themes/README.rst ::警告:文檔不包含在任何toctree中

我的問題是如何綁定這一切嗎?具體而言,我是否正確使用我的requirements.txt文件來讀取文檔以成功構建?如果我對我的requirements.txt的路徑是正確的,那麼如何包含模擬包以成功生成autodocs?

+0

因爲它的立場,這個問題很難回答,因爲沒有簡單的方法來測試任何潛在的答案。如果您可以提供一個關於您的項目設置方式的簡約骨架,以及您已經嘗試過的方法,以及它如何不起作用,那麼可能有更好的機會得到答案。 –

+0

我做了補充,我認爲會有所幫助,謝謝。 – Tyler

+0

你可以檢查你的'requirements.txt'的路徑是否正確,如下所示:在'requests'模塊中包含一個依賴關係,儘可能早地將其導入到你的項目中(頂級__init __。py'),構建文檔本地*沒有*依賴被滿足檢查這是第一個錯誤獅身人面像提出,然後讓RTD建立它。 –

回答

4

我創建了一個https://github.com/Bonza-Times/GatherNews的分支,併爲它設置了一個ReadTheDocs構建。唯一的問題似乎是您使用了錯誤的路徑requirements.txt。它說

Path from the root of your project.

所以,不包括GatherNews。只需使用requirements.txt作爲路徑,因爲該文件位於git存儲庫的頂層。

由於您已檢查Use virtualenv,因此ReadTheDocs應自動確保虛擬環境的網站包在sys.pathsphinx-build腳本中可用。

因爲feedparser在C庫上沒有任何硬性依賴關係,所以我沒有看到模擬模塊的任何需要。它可以被建立反對libxml2,但它不必。

隨着requirements.txt固定的路徑,我能夠做一個成功的構建。

這些都是我用了「高級設置」,其餘設置爲默認值:

Advanced settings

相關問題