Sphinx'i kullanarak kod tabanım için temel belgeleri otomatik olarak oluşturmaya çalışıyorum. Ancak, dosyalarımı tekrar taramak için Sfenks'e talimat vermekte zorlanıyorum.Tüm Python Paket İçeriği için Otomatik Olarak Belge Oluşturma
<workspace>
src
mypackage
__init__.py
subpackageA
__init__.py
submoduleA1
submoduleA2
subpackageB
__init__.py
submoduleB1
submoduleB2
index.rst
_build
_static
_templates
Ben hızlı başlangıç okudum: yani şimdi benim yapısı benziyor,
<workspace>
src
mypackage
__init__.py
subpackageA
__init__.py
submoduleA1
submoduleA2
subpackageB
__init__.py
submoduleB1
submoduleB2
ben
<workspace>
içinde sfenks-quickstart ran
:
ben gibi bir klasör yapısı ile bir Python kod tabanına sahip öğretici http://sphinx.pocoo.org/tutorial.html, ve hala belgelerini anlamaya çalışıyorum rağmen, bana bu şekilde yaptığı gibi, Sphinx benim kod tabanımdaki her modül/sınıf/işlev için el ile belge dosyaları oluşturacağımı varsayar.
Ancak, "automodule" ifadesini fark ettim ve hızlı başlatma sırasında autodoc'u etkinleştirdim, bu yüzden belgelerin çoğunun otomatik olarak oluşturulabileceğini umuyorum. Src klasörümü sys.path dosyasına eklemek için conf.py'imi değiştirdim ve sonra automodule kullanmak için index.rst dizinimi değiştirdim. Ben alt paket tanımlanan sınıflar ve işlevlerin onlarca
Contents:
.. toctree::
:maxdepth: 2
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
.. automodule:: alphabuyer
:members:
: gibi Yani şimdi benim index.rst görünüyor. Oysa ben çalıştırdığınızda:
updating environment: 1 added, 0 changed, 0 removed
Ve bu benim paketin içindeki herhangi bir şeye alınamadı gibi görünüyor:
sphinx-build -b html . ./_build
o raporlar. Oluşturulan index.html'yi görüntülemek, "İçindekiler:" in yanında hiçbir şey göstermiyor. Dizin sayfasında sadece "mypackage (module)" gösterilir, ancak tıklatıldığında da içeriğinin olmadığı gösterilir.
Sphinx'i her paketi kendiniz listelemek zorunda kalmadan, bir paketi yinelemeli olarak ayrıştırmaya ve karşılaştığı her sınıf/yöntem/işlev için otomatik olarak belge oluşturmaya nasıl yönlendirirsiniz?
Bu daha bazı tamamen alakasız bir proje için sonradan gibi görünüyor. Aracın kendisi için herhangi bir kullanım belgesi bile yok. – Cerin
Sadece vanilya Sfenks ile ne yapmak istediğinizin bir yolu yoktur. Daha fazla bir şey gerekiyor ve apigen.py iyi bir adaydır. “Ilgisiz” mi yoksa “sonradan” mı, neden önemlidir? Araç düzgün bir şekilde paketlenmemiş ve titizlikle belgelenmemiştir, ancak bu da son derece karmaşık değildir. Kısa ana komut dosyasını, build_modref_templates.py'ye uyarlayarak başlayın. Bu betik, tüm zor işleri yapan apigen.py'den ApiDocWriter sınıfını içe aktarır. – mzjn
Daha sonradan bir düşünceyle ilgileniyorum, çünkü bir Nörogimaging kütüphanesinin bir eki olduğu için, geliştiricinin odak noktası, Genel Kamuoyu için apigen.py çalışması yapmamak için Nörogörüntüleme üzerinde olacak. Ancak, bu tür otomasyonları desteklemeyen Sphinx hakkındaki noktanız iyi karşılandı. Apigen.py'nin muhtemelen işe yarayacağına emin olmama rağmen, bu göreve adanmış olan https://bitbucket.org/etienned/sphinx-autopackage-script ile devam ettim. – Cerin