我刚安装了 lxml 来解析python中的xml文件。我使用 TextMate 作为IDE。问题是,当我尝试导入lxml (from lxml import entree)
时,我得到了
ImportError :'没有名为lxml的模块'
但是当我使用终端时,一切都很好
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from lxml import etree
>>> root=etree.element("root")
>>> root=etree.Element("root")
>>> print (root.tag)
root
>>> root.append(etree.Element("child1"))
>>> child2 = etree.SubElement(root, "child2")
>>> child3 = etree.SubElement(root, "child3")
>>> print (etree.tostring(root,pretty_print=True))
<root>
<child1/>
<child2/>
<child3/>
</root>
这很奇怪。它与TextMate有关吗?
建议请!
答案 0 :(得分:3)
这很可能意味着您的系统上安装了多个python,默认情况下TextMate和终端使用不同的安装。
一种解决方法:在你的python文件中,你可以指定一个解释器指令来指向你选择的python安装(和可执行文件):
#!/usr/local/bin/python
# Even thought standard python is in /usr/bin/python, here we want another ...
答案 1 :(得分:2)
你需要在TextMate的设置中定义shell变量,特别是'TM_PYTHON'需要指向你的Python二进制文件。
要在终端中找到您使用的Python,可以输入'which python'
答案 2 :(得分:1)
TextMate可能正在使用与您的终端不同的PYTHONPATH。我不是TextMate用户,所以我无法帮助你,但它应该指向正确的方向。
答案 3 :(得分:0)
您可能正在从TextMate运行不同版本的Python。我有一个类似的问题,RedHat有两个版本的Python。我已经将模块安装到一个模块,但是试图用另一个模块执行。