Compiled exe中的ImportError,但不在脚本中

时间:2012-11-21 01:20:11

标签: python python-2.7 pyodbc

我写了一个与数据库交互的小python脚本。我想创建脚本文件的exe,然后将其发送给最终用户,而不是发送脚本文件本身。我正在使用pytoexe来创建exe文件。

这就是我的setup.py文件现在的样子

from distutils.core import setup
import py2exe
setup(
    console=["Test.py"],
    zipfile = None,
    data_files=[("",
                 ["config.xml"]),
                ],
    name='Test',
    version='1.0.0',
    url='',
    license='',
    author='test user',
    author_email='',
    description='',
    #package_dir = {'': 'Lib'},
    py_modules =['pyodbc']
    #packages = ['pyodbc']
)

我使用以下命令行运行脚本

  

python setup.py py2exe --bundle 2

创建exe时,py2exe显示此消息

  

以下模块似乎缺失   ['ElementC14N','pyodbc']

但是生成了exe。现在,每当我运行这个exe时,我都会收到此消息

  

追踪(最近一次通话):     文件“Test.py”,第4行,in   ImportError:没有名为pyodbc的模块

如果我执行脚本,我运行的脚本运行正常。它只是当我创建exe时,exe不起作用并给我这个消息。

任何帮助将不胜感激。

注意: 我在脚本文件中有以下导入

  1. 将xml.etree.ElementTree导入为ET
  2. import pyodbc
  3. 生成py2exe时出现的另一个错误[“ElementC14N”]是exe,我相信是由于我正在读取设置的xml文件。解决这个问题的任何帮助都是值得称道的。

    由于

1 个答案:

答案 0 :(得分:2)

谢谢大家....

这就是我所做的,它开始为我工作

options = {"py2exe":{"packages":"encodings",
                     "includes":["pyodbc",
                                 "datetime", "decimal"],
                     "bundle_files":2,
                     "optimize":2},},