9

WindowsでPython2.5.4を実行していますが、ElementTreeまたはcElementTreeモジュールをインポートしようとするとエラーが発生し続けます。コードは非常に単純です(私はチュートリアルに従っています):

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から実行するとエラーメッセージが表示されますが、Pythonインタープリターから直接実行するとエラーメッセージは表示されません。

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

また、チェックしたところ、モジュールはC:\ Python25 \ Lib \ xml\etreeにあります。

4

4 に答える 4

48

元のファイル名はC:\xml.pyであるため

ファイル名を別の名前に変更します

于 2012-04-25T22:25:39.630 に答える
12

テストreport("ImportError: No module named etree.ElementTree")ファイルにxml.py. そして、名前を のような別の名前に変更したときに修正されxmltest.pyました。

于 2012-09-01T02:45:49.307 に答える
7

チュートリアルの非常に重要な行を見逃しました

import xml.etree.ElementTree as xml

これにより、xml.etree.ElementTree がモジュール全体で xml として知られるようになりました。

私はたまたまpython 2.5.4を持っていて、上記と同じコードが機能することを確認しました:

user@Comp 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()

user@Comp test$ /usr/bin/python2.5 --version
Python 2.5.4
user@Comp test$ /usr/bin/python2.5 test.py 
user@Comp test$ cat test.xml 
<root><child name="Charlie" /></root>user@Comp test$ 

そのため、python 2.5.4 を実行していることを確認し、再インストールを試みる場合は確認してください。問題は、それが python 2.5.4 またはあなたのコードであるということではありません。インストールに問題があるか、別のバージョンの Python を実行しているか、その他の奇妙な問題があります。

于 2010-06-18T21:26:05.313 に答える
5

私はおかしな状況にありましたが、これと似ているかもしれないし、そうでないかもしれませんが、私の解決策を見つけました。xmlファイルを解析するための独自のモジュールを作成しました。入れました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したところ、完全に機能しました。モジュールの命名規則に注意を払うことを簡単に思い出してください。

于 2012-01-17T22:12:23.150 に答える