Ошибка импорта модуля Python - PullRequest
       14

Ошибка импорта модуля Python

1 голос
/ 26 сентября 2011

Я только что установил lxml для разбора XML-файла в Python. Я использую 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?

Предложение, пожалуйста!

Ответы [ 4 ]

3 голосов
/ 26 сентября 2011

Скорее всего, это означает, что в вашей системе установлено более одного Python, и что TextMate и Terminal по умолчанию используют разные.

Один обходной путь: в вашем файле python вы можете указать директиву интерпретатора, указывающую на выбранную вами установку (и исполняемый файл) python:

#!/usr/local/bin/python
# Even thought standard python is in /usr/bin/python, here we want another ...
2 голосов
/ 26 сентября 2011

Вам необходимо определить переменные оболочки в настройках TextMate, в частности, 'TM_PYTHON' должен указывать на ваш двоичный файл Python.

Чтобы найти, какой Python вы используете, в терминале вы можете набрать 'which python'

1 голос
/ 26 сентября 2011

Вероятно, TextMate использует PYTHONPATH, отличный от вашего терминала. Я не пользователь TextMate, поэтому я не могу вам помочь, но это должно указать вам правильное направление.

0 голосов
/ 26 сентября 2011

Возможно, вы работаете с другой версией Python из TextMate.У меня была похожая проблема с RedHat, имеющим 2 версии Python.Я установил модуль для одного, но пытался выполнить с другим.

...