2013-06-06 5 views
0

Как сделать py2exe импортировать мой файл etree.pyd в папку lxml?ошибка при импорте py2exe с lxml etree

Когда я

includes = ['lxml.etree'] 

Я получаю ошибку: importerror no module named lxml.etree. Если я войду в консоль python и введите

from lxml import etree 
import lxml 
lxml.etree 

Оба работают нормально. Что я делаю не так?

+0

Во-первых, чтобы получить глупую ошибку (что я всегда делаю) из пути: вы уверены, что вы используете один и тот же интерпретатор Python и окружающей среды в вашем консоли и в вашем запуске 'py2exe'? – abarnert

+0

Во-вторых, почему вы явно добавляете это 'includes'? Не находит ли модуль-искатель автоматически? – abarnert

ответ

0

Вам действительно не нужно делать это явным; модуль-искатель должен найти зависимость и автоматически добавить ее, а если нет, и вы не знаете, что это хорошая причина, вы должны сначала ее отладить (с py2exe.mf, как описано в документах).

Но если вам это нужно, вам понадобится весь пакет lxml, а не только lxml.etree. Таким образом, просто заменить:

includes = ['lxml.etree'] 

... с:

packages = ['lxml'] 

Или, если вы хотите включить только верхний уровень пакета и etree подпакет-я не уверен, что будет на самом деле ли работа (либо во время установки или во время выполнения), но он может:

includes = ['lxml', 'lxml.etree'] 
Смежные вопросы