2010-06-18 28 views
9

मैं विंडोज़ पर पाइथन 2.5.4 चला रहा हूं और ElementTree या cElementTree मॉड्यूल आयात करने का प्रयास करते समय मुझे एक त्रुटि मिल रही है। कोड बहुत सरल है (मैं एक ट्यूटोरियल अनुसरण कर रहा हूँ):पायथन 2.5.4 - आयात त्रुटि: कोई मॉड्यूल etree.ElementTree

import xml.etree.ElementTree as xml 

root = xml.Element('root') 
child = xml.Element('child') 
root.append(child) 
child.attrib['name'] = "Charlie" 
file = open("test.xml", 'w') 
xml.ElementTree(root).write(file) 
file.close() 

जब मैं या cmd से चलाने मैं त्रुटि संदेश मिलता है लेकिन जब मैं सीधे अजगर दुभाषिया से यह कोशिश नहीं की।

Traceback (most recent call last): 
File "C:\xml.py", line 31, in <module> 
    import xml.etree.ElementTree as xml 
File "C:\xml.py", line 31, in <module> 
    import xml.etree.ElementTree as xml 
ImportError: No module named etree.ElementTree 

इसके अलावा, मैं जाँच की और मॉड्यूल सी में है: \ Python25 \ लिब \ एक्सएमएल \ etree

+0

आपको आपके द्वारा पोस्ट किए गए कोड को चलाने से आपके विषय में त्रुटि संदेश नहीं मिलता है। आपको वह संदेश 'आयात etree.ElementTree' से प्राप्त होगा। सहायता मांगते समय, अपने कोड और ट्रेसबैक और त्रुटि संदेश दोनों को कॉपी/पेस्ट करें, स्मृति से टाइप न करें। –

+0

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

+0

यदि दुभाषिया काम करता है, और cmd नहीं करता है, तो क्या यह संभव है कि आपके पास cmd से चल रहे अजगर का पुराना संस्करण हो? – wisty

उत्तर

7

आपने निर्देश

import xml.etree.ElementTree as xml 

में बहुत महत्वपूर्ण लाइन याद किया इस एक्सएमएल बनाता है .etree.ElementTree अब मॉड्यूल में एक्सएमएल के रूप में जाना जाता है।

मैं अजगर 2.5.4 के लिए होती हैं और मैं सत्यापित किया है कि एक ही कोड आप ऊपर है काम करता है:

[email protected] test$ cat test.py 
import xml.etree.ElementTree as xml 

root = xml.Element('root') 
child = xml.Element('child') 
root.append(child) 
child.attrib['name'] = "Charlie" 
file = open("test.xml", 'w') 
xml.ElementTree(root).write(file) 
file.close() 

[email protected] test$ /usr/bin/python2.5 --version 
Python 2.5.4 
[email protected] test$ /usr/bin/python2.5 test.py 
[email protected] test$ cat test.xml 
<root><child name="Charlie" /></root>[email protected] test$ 

तो जाँच करें और सुनिश्चित करें कि आप अजगर 2.5.4 चला रहे हैं और कोशिश करता है, तो आप कर रहे हैं फिर से स्थापित करने। समस्या यह नहीं है कि यह पाइथन 2.5.4 या आपका कोड है। यह कुछ स्थापना समस्या है, आप अजगर का एक अलग संस्करण चला रहे हैं, या कुछ और अजीब समस्या है।

+0

धन्यवाद :) यह एक टाइपो है ... लेकिन फिर भी यह मॉड्यूल को नहीं पहचानता है ... – Jen

+0

@ जेन: आपके द्वारा चलाए गए वास्तविक कोड को पोस्ट करें, ट्रेसबैक और त्रुटि संदेश पोस्ट करें। "मॉड्यूल को पहचान नहीं है" संदिग्ध है। –

+0

धन्यवाद! मैं effbot.org ElementTree पैकेज डाउनलोड करने और इसे स्थापित करने के लिए समाप्त हो गया।यह अब काम कर रहा है, लेकिन मुझे अभी भी पता नहीं है कि मूल पुस्तकालय क्यों काम नहीं कर रहा था ... – Jen

4

मुझे एक मजेदार स्थिति थी, जो इस तरह के समान हो सकता है या नहीं और मेरा समाधान मिला। मैंने एक्सएमएल फाइलों को पार्स करने के लिए अपना खुद का मॉड्यूल बनाया। मैंने इसे my_project_root/utilities/xml.py में रखा है। इस मॉड्यूल के भीतर से import xml.etree.ElementTree या xml.etree मुझे इस पोस्टिंग के शीर्षक में त्रुटि मिलेगी। यह स्वयं में खोज रहा था, इसलिए xml.py के भीतर से यह import etree.ElementTree करने का प्रयास कर रहा था, और etree नामक पैकेज या मॉड्यूल नहीं मिला। मैंने अपने मॉड्यूल का नाम xml_parse.py में बदल दिया और my_project_root/utilities/xml.pyc हटा दिया और यह पूरी तरह से काम किया। मॉड्यूल नामकरण सम्मेलनों के साथ सावधानी बरतने का एक सरल अनुस्मारक।

44

क्योंकि आपकी मूल फ़ाइल नाम C: \ xml.py

बदलें किसी अन्य नाम

+16

हे भगवान दर्द। "Xml.pyc" फ़ाइल को भी हटाने के लिए मत भूलना! – BastiBen

+2

मैं बस एक ही समस्या में भाग गया। यह मेरी स्क्रिप्ट xml.py नाम देने के लिए तार्किक लग रहा था क्योंकि मैं इसे सीखने के लिए पहली बार xml libs को आजमाने के लिए उपयोग करने जा रहा था। पाइथन नामस्थान के साथ पटकथा के नाम के बारे में नहीं सोचा था। :) यह ध्यान देने के लिए धन्यवाद। – odigity

10

के लिए फ़ाइल नाम जब xml.py के रूप में परीक्षण फ़ाइल नामकरण मैं एक ही त्रुटि report("ImportError: No module named etree.ElementTree") मिला है। और जैसे किसी अन्य चीज़ पर इसका नाम बदलकर निश्चित मिला।

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