2017-04-14 27 views
0

我的python包有一個名爲settings.py的模塊,它查找settings.ini文件,如果找不到,則引發異常。使用Sphinx Autodoc時模擬內部模塊

我的軟件包工作正常,但是當我嘗試使用Sphinx Autodoc時,它失敗了,因爲它無法找到設置文件。

我有什麼選擇來解決這個問題?我能想到的是

  1. 把一個settings.ini文件放在其中一個Sphinx目錄中,以便它可以被讀取。
  2. 如果可能,以某種方式模擬內部設置模塊。該設置模塊是不重要的,所以我不關心,如果沒有對發售者

試圖生成在需要外部文件包獅身人面像文檔時有沒有人遇到了類似的問題還沒有文檔,並若然你的解決方案是?

+1

您是否確實需要將該設置文件添加到模塊中? – jonrsharpe

+0

我編程的方式是,當時我認爲它會更簡單。該軟件包是一個命令行應用程序,它將大量內容寫入dbs,並且設置會告訴它哪些dbs。這是不好的做法嗎?我可以看到它是如何導致我現在遇到的問題 – canyon289

+0

如果設置文件僅用於命令行程序,那麼在命令實際運行之前不應加載該文件。如果有人在你的包上運行'pydoc',你會遇到同樣的問題。 – jwodder

回答

0

金字塔有一個命令行腳本pserve,它加載了一個.ini設置文件。

爲了證明這個腳本,我們使用autoprogram如下:

.. autoprogram:: pyramid.scripts.pserve:PServeCommand.parser 
    :prog: pserve 

,並在您conf.py

extensions = [ 
... 
    'sphinxcontrib.autoprogram', 
... 
] 

它需要在你的腳本使用argparse