Вот сценарий - я знаю, что этот вопрос уже задан раньше в StackOverflow в несколько разных ситуациях, но, к сожалению, ни один из предоставленных мной ответов/предложений не помог мне.Любые идеи об этом запутанном Python «Нет модуля с именем expat; Use SimpleXMLTreeBuilderInstead» ошибка?
У меня есть файл Python, который передается как аргумент API Python для другой программы (PSS \ E) для использования при запуске. Внутри моего файла Python у меня есть раздел, в котором я использую библиотеку ElementTree для анализа XML-файла в древовидной структуре. Вот код, у меня есть:
from xml.etree.ElementTree import ElementTree, Element
...
tree = ElementTree.parse(myXmlFileName)
Всякий раз, когда я делаю вызов метода ElementTree.parse (myXmlFileName), я получаю следующее сообщение об ошибке:
Импорт Ошибка Нет модуль с именем эмигранта; использовать SimpleXMLTreeBuilder вместо
Bizzare Дело в том, что эта ошибка быть выброшен из внутри ElementTree.py сам файл, внутри определения класса XMLParser:
class XMLParser(object):
def __init__(self, html=0, target=None, encoding=None):
try:
from xml.parsers import expat
except ImportError:
raise ImportError("No module named expat; use SimpleXMLTreeBuilder instead")
Я попытался с помощью SimpleXMLTreeBuilder вместо , за некоторые другие ответы на этот вопрос в StackOverflow, но он дает мне ту же ошибку.
Если я открываю свою оболочку Python (кстати, я использую Python 2.7.8) и набираю «import xml.parsers.expat», я не получаю эту ошибку, и все, кажется, импортируется нормально. Я также могу запустить команду ElementTree.parse (myXmlFilePath) без каких-либо проблем внутри оболочки Python. Однако, когда я пытаюсь сделать это через свой файл Python, который я загружаю в PSS \ E API (PSSE - это сторонний продукт с API Python), я получаю упомянутую выше ошибку, следуя тем же шагам, что и успешный в оболочке Python.
У любого гуру-питона есть какие-либо советы по этому поводу? Я бы не думал, что путь к файлу будет иметь значение, так как переменная пути моей системы включает в себя местоположение моей установки Python, и я попытался использовать этот код в оболочке Python из разных «домашних» каталогов и, похоже, работает независимо от того, что я пытаюсь. Проблема возникает только при попытке подключиться к этому стороннему приложению.
Спасибо за помощь!
Кажется, что сторонняя среда python не имеет доступа к expat. Вы можете видеть, какие пути сторонней среды могут загружать модули python, распечатывая sys.path из сторонней среды. Если он отсутствует, вам нужно либо установить его, либо изменить свой «PYTHONPATH», чтобы он мог найти подходящий. – VooDooNOFX