2011-02-08 38 views
7

Tôi đang làm việc trên một số dự án Jython sử dụng thư viện được viết bằng Java. Tôi muốn tạo một số tài liệu tốt với Sphinx nhờ phần mở rộng autodoc. Tuy nhiên khi tôi cố gắng tạo html, tôi nhận được lỗi vì autodoc không thể tìm thấy các thư viện được viết bằng Java:Làm thế nào để tạo tài liệu dựa trên Sphinx trong một dự án Jython?

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 

nơi PoolManager là một lớp Java.

Có ai giúp tôi giải quyết vấn đề này không?

+0

Sry, đã không sử dụng Jython trước đó, nhưng bạn đã cố gắng tạo ra một wrapper rằng sẽ bẫy 'trăn' lời gọi như vậy mà khi Nhân sư gọi 'python' nó kết thúc bằng cách gọi trình bao bọc của bạn gọi jython? Điều khác, là cho dự án của tôi, tôi đã phải đóng gói một số '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' s '' ' Bạn có thể kiểm tra một biến môi trường hoặc một số biến toàn cầu khác trước khi bạn nhập một thư viện jython? Ngoài ra, bạn có thể tạo các thư viện python giả có cùng giao diện với các thư viện jython bạn đang sử dụng và chỉ nhập các núm này trong khi chạy Sphinx bằng [cont] –

+0

biến môi trường thao tác 'PYTHON_PATH' hoặc' sys.path'. –

+0

Cảm ơn bạn đã trả lời. Tôi sẽ thử những gì bạn đề xuất. –

Trả lời

6

Nhân sư có thể được sử dụng để ghi lại các dự án Jython, nhưng autodoc không hoạt động đối với mã được viết bằng Java. Tính năng autodoc nhập khẩu và kiểm tra các mô-đun Python. Không có hỗ trợ để làm tương tự với các lớp Java.

Thực hiện autodoc (hoặc một cái gì đó tương tự) cho Java có vẻ khả thi, nhưng ai đó phải tình nguyện làm điều đó. Xem nhận xét này của tác giả Sphinx Georg Brandl: http://www.mail-archive.com/[email protected]/msg03162.html.

Tôi đã tìm thấy một số thông tin về a proposed GSoC 2010 project nhằm triển khai hỗ trợ đa ngôn ngữ cho chế độ tự động sửa. Nhưng theo this blog post, dự án đã không hoàn thành. Nhà phát triển đã chọn làm việc trên một dự án GSoC khác.

sphinx-contrib repository không chứa bất kỳ điều gì liên quan đến autodoc.


Cập nhật

Có một phần mở rộng Sphinx mới gọi là javasphinx có vẻ thú vị. Tôi đã không được sử dụng phần mở rộng này, nhưng theo the documentation, nó có thể sản xuất các nguồn còn lại từ mã Java:

Công cụ javasphinx-apidoc là điểm đối lập trong sphinx-apidoc cụ trong lĩnh vực Java. Nó có thể được sử dụng để tạo nguồn reST từ mã nguồn Java hiện có đã được đánh dấu với các nhận xét kiểu Javadoc. được tạo lại sau đó được xử lý cùng với tài liệu viết tay bởi Sphinx.

javasphinx sử dụng thư viện khác có tên javalang.

gói PyPI:

+0

Cảm ơn câu trả lời chi tiết này. Điều đó xác nhận những gì tôi nghĩ. Tôi sẽ phải đối phó mà không có autodoc cho đến khi điều này được thực hiện. –

Các vấn đề liên quan