2015-12-22 16 views
10

Tôi đang cố gắng sử dụng tự động chỉ cho các mô-đun được chọn. Tôi đã tạo một tệp bao gồm:Bỏ qua một số mô-đun trong autodoc

.. automodule:: some.specific.module 
    :members: 

Và nó được tạo chính xác. Thật không may autodoc vẫn cố gắng phân tích cú pháp các tệp khác (và không thành công do lỗi nhập). Tôi biết tôi có thể thử một số mô-đun, nhưng tôi muốn có một giải pháp tốt hơn - ngăn chặn nhân sư nhìn họ để bắt đầu.

Làm cách nào để đảm bảo chỉ có mô-đun được yêu cầu được tải, chứ không phải (ví dụ) test.other.module.

+0

http://stackoverflow.com/a/21449475/344286 có làm những gì bạn muốn không? Nếu vậy tôi sẽ đăng nó như một câu trả lời –

Trả lời

0

Vì vậy, nó hóa ra là một sai lầm ngu ngốc. Vì một số công cụ tạo ra một giàn giáo cho các nguồn tài liệu api, các tệp đó được đặt xung quanh và kích hoạt nhập khẩu xấu.

thế nào điều này đã được tìm thấy:

  • nhân sư có nhiều cấp độ debug logging mà thường không được kích hoạt
  • bạn có thể nhìn thấy dòng kích hoạt nhập khẩu bởi kết xuất debug như
[autodoc] /path/to/the/doc.rst:158: input: 
.. automodule:: app.module.name 
    :members: 
0

tôi nhìn thấy ba nguyên nhân có thể cho điều này xảy ra:

  • bộ nhớ cache Sphinx được gây rắc rối, và make clean sẽ giải quyết vấn đề này
  • mô-đun của bạn nằm trong một gói, và __init__.py hồ sơ của gói đang nhập các "tệp khác" (hoặc chính xác hơn là cố gắng để nhập chúng);
  • Những "tác phẩm khác" được nhập khẩu bởi vì bạn đã thiết PYTHONSTARTUP
Các vấn đề liên quan