2010-11-08 9 views
27

मुझे यकीन नहीं है कि मुझे अपने पायथन कोड को दस्तावेज़ित करने के लिए एपीडोक या डॉक्सिजन का उपयोग करना चाहिए। वर्तमान में मैं एपीडोक पसंद करूंगा क्योंकि यह पाइथन के लिए विशिष्ट है और इसका वाक्यविन्यास डॉक्सिजन से बहुत अलग नहीं है (जिसे मैंने अब तक अपने सी/सी ++ कोड को दस्तावेज करने के लिए उपयोग किया है)।पायथन कोड कैसे दस्तावेज़ करें: Epydoc, doxygen, स्फिंक्स, ...?

एपीडोक के खिलाफ या डॉक्सिजन का उपयोग करने के लिए कोई तर्क?

उत्तर

37

Epydoc दस्तावेज़ पीढ़ी के लिए क्लासिक उपकरण किया गया था। हालांकि, हर कोई हाल ही में स्फिंक्स में जा रहा है।

आपको epydoc का उपयोग करना चाहिए या आप स्फिंक्स का उपयोग करने का प्रयास कर सकते हैं। पायथन का दस्तावेज स्वयं स्फिंक्स का उपयोग करके किया जाता है। स्फिंक्स आपको अधिक नियंत्रण और बेहतर दिखने वाले दस्तावेज़ प्रदान कर सकता है।

Doxygen के साथ गलत कुछ भी नहीं है, लेकिन यह C/C++ प्रोग्राम के लिए लाभ का एक बड़ा सौदा प्रदान करता है। चूंकि पाइथन कोड के लिए विशेष दस्तावेज़ उपकरण हैं, इसलिए वे आपको दस्तावेज़ निर्माण पर बेहतर नियंत्रण प्रदान कर सकते हैं।

+1

आपको बहुत बहुत धन्यवाद। यह वही परिणाम है जिसे मैं ढूंढ रहा था। :-) – dubbaluga

26

मैंने अपने पायथन परियोजना के लिए स्फिंक्स, एपीडोक और डॉक्सिजन की कोशिश की।

स्फिंक्स मेरे लिए काम नहीं करता है क्योंकि यह प्रत्येक मॉड्यूल को आयात करने में सक्षम होने पर निर्भर करता है। यद्यपि मेरी परियोजना ठीक चलती है और स्फिंक्स अपने मॉड्यूल पा सकता है, स्फिंक्स अधिकांश मॉड्यूल आयात करने में असमर्थ था। स्पिंक्स सामान्य दस्तावेज़ीकरण और उपयोगकर्ता मैनुअल बनाने के लिए उपयोगी हो सकता है, लेकिन कम से कम मेरे स्रोत कोड को दस्तावेज करने के लिए बेकार है। ऐसा लगता है कि स्फिंक्स मॉड्यूल के लिए अकेले स्टैंड चलाने में सक्षम होना चाहिए। लेकिन मेरी परियोजना में पहला मॉड्यूल डेटाबेस से कनेक्ट करने का प्रयास करता है। यदि डेटाबेस कनेक्शन विफल रहता है तो यह बंद हो जाता है। कई अन्य मॉड्यूल डेटाबेस कर्सर की अपेक्षा करते हैं। यदि डेटाबेस कनेक्शन स्थापित नहीं किया गया था तो उन्हें आयात नहीं किया जा सकता है और इस प्रकार स्फिंक्स विफल हो जाता है।

डॉक्सीजन ने अच्छा काम किया। यदि डॉक्सपी के साथ मिलकर यह बेहतर होता है। हालांकि इसमें कुछ कमीएं हैं। यदि आप स्रोत कोड में क्रमांकित सूची चाहते हैं, तो आप इसे दस्तावेज़ीकरण और उपाध्यक्ष में नहीं प्राप्त करते हैं। और भी, यदि दस्तावेज़ पढ़ना है, तो स्रोत दिखाई नहीं दे रहा है।

तो मैंने एपीडोक की कोशिश की। यद्यपि Epydoc को 3 से अधिक वर्षों से अपडेट नहीं किया गया था और इस प्रकार मृतक को हटा दिया गया था, मेरे लिए यह पाइथन कोड को दस्तावेज करने के लिए अब तक का सबसे अच्छा टूल साबित हुआ है। स्पीनक्स के समान एपीडोक, प्रत्येक मॉड्यूल को आयात करने का प्रयास करता है, लेकिन यदि आयात विफल रहता है, तो यह केवल एक त्रुटि संदेश दिखाता है और फिर मॉड्यूल को पार्स करने की कोशिश करता है, जैसा कि डॉक्सिजन करता है। ईपीडोक द्वारा उत्पन्न दस्तावेज अच्छा है और डॉक्सिजन पर कुछ फायदे हैं: 1. प्रलेखित स्रोत केवल एक क्लिक से दिखाई दे सकता है। 2. डॉकस्ट्रिंग में क्रमांकित सूचियां भी दस्तावेज में गिने गए हैं।

स्पिंक्स स्थापित करना जटिल है अगर इंटरनेट कनेक्शन के साथ easy_install का उपयोग नहीं किया जा सकता है। ऐसा इसलिए है क्योंकि स्फिंक्स अन्य पैकेजों पर निर्भर करता है। डॉक्सिजन को एक-क्लिक इंस्टॉलर के साथ आने वाले अधिकांश प्रोग्रामों के रूप में आसान स्थापित किया जा सकता है। लेकिन DoxyPy और gaphviz भी स्थापित किया जाना चाहिए। एक्सपीडोक भी एक क्लिक के साथ स्थापित किया जा सकता है, लेकिन विंडोज 7 पर इसे स्पष्ट रूप से व्यवस्थापक के रूप में किया जाना चाहिए, जबकि एपीडॉक इंस्टॉलर खुद को जांच नहीं करता है कि यह पर्याप्त अधिकारों से शुरू हुआ है या नहीं। मेरी परियोजना का पहला उपयोग करने योग्य दस्तावेज प्राप्त करना Epydoc के साथ सबसे आसान और सबसे तेज़ था। अंत में पाइपॉन परियोजनाओं को दस्तावेज करने के लिए सबसे अच्छा टूल के रूप में Epydoc को अभी भी अनुशंसा की जा सकती है। उपयोगकर्ता दस्तावेज तैयार करने के लिए स्फिंक्स एक अच्छा उपकरण हो सकता है।

+1

किंडा मेरे एक्सपीरियंस – PedroMorgan

+22

पाइथन में, एक मॉड्यूल को आयात समय पर किसी भी प्रमुख कार्रवाई को ले जाने वाले मॉड्यूल को आमतौर पर * खराब बात * के रूप में माना जाता है, और आपको किसी भी पायथन टूल से समझदार व्यवहार की अपेक्षा नहीं करनी चाहिए अगर आपकी परियोजना यह करती है। [यह लिंक] (http://www.plope.com/Members/chrism/import_time_side_effects) बताते हैं कि क्यों आयात-समय दुष्प्रभाव आम तौर पर मूर्ख होते हैं और अक्सर आश्चर्यजनक परिणाम होते हैं। – kampu

+3

भी, कोड जो आयात समय पर पर्याप्त कुछ भी करता है आम तौर पर * असंभव * यूनिट परीक्षणों में परीक्षण करने के लिए होता है –

संबंधित मुद्दे