前提・実現したいこと
pythonでdocstringの記載内容からAPIをドキュメント化したいです。
sphinxでhtml化を試みていますが、エラーが発生しました。
python 3.7.5 + sphinx です。
■フォルダ構成(フォルダ・ファイル名は一部仮です)
+-docs | +-conf.py | +-index.rst | +-modules.rst +-pkg +-source1.py +-source2.py
■ファイル
index.rst(抜粋)
.. toctree:: :maxdepth: 2 :caption: Contents: source1
conf.py(抜粋)
import os import sys sys.path.insert(0, os.path.abspath('../')) extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx.ext.viewcode', 'sphinx.ext.napoleon', 'sphinxarg.ext', ]
■実行コマンド
> sphinx-quickstart docs > cd docs > sphinx-apidoc -f -o ./ ../pkg > make html
発生している問題・エラーメッセージ
> make html
上記のコマンドの結果、以下のエラーが発生します.
WARNING: autodoc: failed to import module 'source2' from module 'pkg'; the module executes module level statement and it might call sys.exit().
なお、pkgフォルダ配下に複数のソースファイルがありますが、すべてではなく、一部のファイルのみ上記のエラーが発生します。
試したこと
moduleがimportできないとのエラーメッセージから、パスを追加してみました.
sys.path.insert(0, os.path.abspath('./')) sys.path.insert(0, os.path.abspath('./pkg')) sys.path.insert(0, os.path.abspath('../pkg')) sys.path.insert(0, os.path.abspath('fullpath/pkg'))
結果変わらず。
検索したところ、以下を発見しました。
https://stackoverflow.com/questions/34570114/python-sphinx-the-module-executes-module-level-statement-and-it-might-call-sys
まさにargparseを使用しているので該当しそうに思いますが、内容があまり理解できませんでした。
cmd_line_paramsって定義されていないようですし。
どうすればよいのか分からず、困っています。
解消方法について何か分かりましたらご教示いただけますと助かります。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。