与pyodbc的cx_freeze错误

ccw*_*te1 5 pyodbc cx-freeze

如果你有一个简单的程序名pyodbcTest.py

import pyodbc
print "pass"
Run Code Online (Sandbox Code Playgroud)

然后使用cx_freeze编译它

cxfreeze --targe-dir=cxTest pyodbcTest.py
Run Code Online (Sandbox Code Playgroud)

然后运行该程序,它会抛出以下错误.

C:\temp\pythonWork\cxTest>pyodbcTest.exe                                                         
Traceback (most recent call last):                                                               
    File "C:\Python27\lib\site-packages\cx_Freeze\initscripts\Console.py", line 27, in <module>     
        exec code in m.__dict__                                                                     
    File "pyodbcTest.py", line 1, in <module>                                           
 RuntimeError: Unable to import decimal       
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

ccw*_*te1 6

我不得不添加选项--include-module decimal来解决问题.不知道为什么它在冻结过程中无法找到它,但它现在正在工作

  • @advocate这个响应有点晚了,但是如果有人偶然发现这个问题,可以添加类似`options = {"build_exe":{"packages":["pyodbc","decimal"]}}` setup()`在我的setup.py文件中为我工作. (2认同)