我正在使用Java编写的库来处理几个Jython项目。由于autodoc扩展,我想用Sphinx创建一些好的文档。但是当我尝试创建html时,我得到错误,因为autodoc找不到用Java编写的库:
sphinx-build -b html -d _build/doctrees . _build/html
Running Sphinx v1.0.5
loading pickled environment... done
building [html]: targets for 1 source files that are out of date
updating environment: 0 added, 1 changed, 0 removed
reading sources... [100%] index
/Users/myName/myJythonProject/doc/index.rst:14: (WARNING/2)
autodoc can't import/find module 'myJythonProject', it reported error:
"global name 'PoolManager' is not defined",
please check your spelling and sys.path
其中PoolManager是Java类。
有人可以帮我解决这个问题吗?
答案 0 :(得分:6)
Sphinx可用于记录Jython项目,但autodoc不适用于用Java编写的代码。 autodoc功能导入并检查Python模块。不支持对Java类进行相同的操作。
为Java实现autodoc(或类似的东西)似乎是可行的,但有人必须自愿做这件事。请参阅Sphinx作者Georg Brandl的评论:http://www.mail-archive.com/sphinx-dev@googlegroups.com/msg03162.html。
我找到了一些有关a proposed GSoC 2010 project的信息,旨在为autodoc实现多语言支持。但根据this blog post,该项目尚未完成。开发人员选择了另一个GSoC项目。
sphinx-contrib repository不包含任何与autodoc相关的内容。
<强>更新强>
有一个名为javasphinx的新Sphinx扩展程序看起来很有趣。我没有使用过这个扩展,但根据the documentation,它可以从Java代码生成reST源:
javasphinx-apidoc
工具是sphinx-apidoc
工具的对位 在Java域中。它可用于从现有生成reST源 已使用Javadoc样式注释标记的Java源代码。该 生成的reST随后由Sphinx与手写文档一起处理。
javasphinx使用另一个名为javalang的库。
PyPI包: