使用py2exe创建exe并导入xlrd脚本时出现问题

2024-03-29 07:31:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是创建一个python脚本,在excel文档的单元格上循环。这是我的python脚本reader.py,它工作得很好。在

    import xlrd
    import os

    exceldoc = raw_input("Enter the path to the doc [C:\\folder\\file.xlsx]: ")

    wb = xlrd.open_workbook(exceldoc,'rb')
.... some code....

我遇到的问题是试图使用py2exe创建一个可执行文件,这样这个脚本就可以在其他地方使用了。在

这是我的setup.py文件:

^{pr2}$

我运行以下命令:python setup.py py2exe

它看起来运行得很好;它创建了dist文件夹,其中包含我的reader.exe文件,但在接近命令末尾时,我得到了以下内容:

The following modules appear to be missing
['cElementTree', 'elementtree.ElementTree']

我在网上做了一些搜索,并尝试了这里的建议Re: Error: Element Tree not found,这改变了我的setup.py文件:

from distutils.core import setup
import py2exe
import sys

from glob import glob

options={
    "py2exe":{"unbuffered": True,"optimize": 2,
   'includes':['xml.etree.ElementPath', 'xml.etree.ElementTree', 'xml.etree.cElementTree'],
 "packages": ["elementtree", "xml"]}}

setup(name='Excel Document Checker',options = options,console=['reader.py'])

我现在得到一个错误: ImportError: No module named elementtree

我有点陷入了僵局。非常感谢任何帮助或指导。在

只是一些信息-我在32位系统上运行Python2.6。在


Tags: 文件thetopyimport脚本setupxml
1条回答
网友
1楼 · 发布于 2024-03-29 07:31:20

您明确告诉setup.py依赖于名为elementtree的包:

"packages": ["elementtree", "xml"]}}

stdlib中没有这样的包。有一个xml.etree,但显然这是同一个名字。在

您发现的示例显然是为安装了第三方软件包^{}的人设计的,如果您需要在python2.6版本xml.etree之后添加特性,或者需要使用python1.5-2.4,但如果您只想使用python2.6的版本,则不需要这样做。(不管怎样,如果您需要第三方软件包,那么您必须安装它,否则它显然无法工作。)

所以,不要这样做,错误就会消失。在


另外,如果您的代码或您导入的代码(例如,xlrd)正在使用xml.etree.cElementTree,那么,正如^{}所说,在使用它之前,您还必须import xml.etree.ElementTree。(您可能还需要手动将其指定为依赖项。)

您可能不想更改正在使用的所有第三方模块…但我相信在导入任何第三方模块之前确保{}可以正常工作。在

相关问题 更多 >