2012-09-12 4 views
6

मुझे एक बड़ा कोडबेस मिला है जिसके लिए मैं HTML- दस्तावेज़ बनाना चाहता हूं। चूंकि यह पायथन में लिखा गया है, इसलिए मैंने स्फिंक्स का उपयोग करने का निर्णय लिया क्योंकि कोड के उपयोगकर्ता स्फिंक्स के साथ बनाए गए पायथन-डॉक्यूमेंटेशन के डिजाइन और कार्यक्षमता के आदी हैं। मैंने स्वचालित रूप से rst-files बनाने के लिए sphinx-apidoc आदेश का उपयोग किया था। मैंने मॉड्यूल पथ को sys.path में आयात किया ताकि स्फिंक्स कोड पा सके।क्या sphinx 'html बनाने' को निष्पादित करने पर अपना कोड चलाता है?

अभी तक इतना अच्छा है। हालांकि, जब मैं make html कमांड का उपयोग कर एचटीएमएल बनाने की कोशिश करता हूं, तो कई ट्रेसबैक पॉप-अप होते हैं और कोडबेस में कुछ उदाहरण निष्पादित होते हैं। इसके लिए क्या कारण हो सकता है और मैं इसे कैसे होने से रोक सकता हूं?

+1

कोड आधार में उदाहरण, जैसे, '__main__' के बाद कोड? या सिद्धांत (आप जानते हैं, एक डॉक्टरिंग में परीक्षण)? –

+0

अच्छा सवाल। मैं इसे फिर से चलाने में संकोच करता हूं। स्फिंक्स-एपिडोक के लिए सटीक कमांड था: 'sphinx-apidoc -f -F -o। ../ src' 'html बनाओ' द्वारा अनुसरण किया जाता है। क्या यह सिद्धांतों के निष्पादन की शुरुआत करेगा? यदि हां, तो मैं इसे करने से कैसे रोक सकता हूं? – AME

+1

(1) जांचें कि क्या आपके पास '__main__' में कुछ कोड है; (2) यदि आप ['doctest'] (http://sphinx.pocoo.org/ext/doctest.html) एक्सटेंशन का उपयोग नहीं कर रहे हैं, तो आपको बीफिन होना चाहिए। सुनिश्चित करने के लिए अपनी कॉन्फ़िगरेशन फ़ाइल जांचें। –

उत्तर

8

autodoc का उपयोग करते समय, स्फिंक्स दस्तावेज़ित मॉड्यूल आयात करता है, इसलिए सभी मॉड्यूल-स्तर कोड निष्पादित किए जाते हैं। यह हर बार होता है जब आप "HTML बनाते हैं"। उस अर्थ में, स्फिंक्स आपके कोड को "चलाता है"।

त्रुटियों को दूर करने के लिए आपको अपना कोड थोड़ा अलग व्यवस्थित करना पड़ सकता है (कार्यों के लिए मॉड्यूल-स्तर कोड ले जाएं)। क्या हो सकता है इसके उदाहरण के लिए this question देखें।

यह मेरा अनुमान है लेकिन यह पूरी कहानी नहीं हो सकती है। अतिरिक्त जानकारी के बिना और कहना मुश्किल है।

0
def main(): 

    print('hello world') 

if __name__ == '__main__': 

    main() 

इस तरह आपका कोड नहीं चलाया जाएगा।

+0

थोड़ा और स्पष्टीकरण ओपी और अन्य की मदद करेगा –

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

  • कोई संबंधित समस्या नहीं^_^