Python 使用lxml etree导入py2exe时出错

Python 使用lxml etree导入py2exe时出错,python,lxml,Python,Lxml,如何使py2exe在lxml文件夹中导入我的etree.pyd 当我这样做的时候 includes = ['lxml.etree'] 我得到错误:importerror没有名为lxml.etree的模块。如果我进入python控制台并键入 from lxml import etree import lxml lxml.etree 两者都很好用。我做错了什么?你真的不需要把这一点说清楚;模块查找器应该找到依赖项并自动添加,如果没有,并且您不知道这样做的原因,那么您应该首先调试它(使用文档中描述

如何使py2exe在lxml文件夹中导入我的etree.pyd

当我这样做的时候

includes = ['lxml.etree']
我得到错误:
importerror没有名为lxml.etree的模块
。如果我进入python控制台并键入

from lxml import etree
import lxml
lxml.etree

两者都很好用。我做错了什么?

你真的不需要把这一点说清楚;模块查找器应该找到依赖项并自动添加,如果没有,并且您不知道这样做的原因,那么您应该首先调试它(使用文档中描述的
py2exe.mf

但是如果您确实需要它,您将需要整个
lxml
包,而不仅仅是
lxml.etree
。因此,只需替换:

includes = ['lxml.etree']
…与:

packages = ['lxml']
或者,如果您只想包括软件包的顶层和
etree
子软件包,我不确定这是否会真正起作用(无论是在安装时还是在运行时),但它可能:

includes = ['lxml', 'lxml.etree']

首先,为了避免这个愚蠢的错误(我经常犯):你确定你在控制台和
py2exe
运行中使用了相同的Python解释器和环境吗?其次,为什么你要显式地添加这个
includes
?模块查找器是否没有自动找到它?