pyodbc python 3.4的cx_freeze错误

Posted

技术标签:

【中文标题】pyodbc python 3.4的cx_freeze错误【英文标题】:cx_freeze error with pyodbc python 3.4 【发布时间】:2014-08-29 00:26:11 【问题描述】:

这与cx_freeze error with pyodbc 几乎完全相同,只是将小数添加为特定的包含不起作用:冻结没问题,但是在尝试运行可执行文件时,我得到:

Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\cx_Freeze\initscripts\Console.py", line 27
, in <module>
    exec(code, m.__dict__)
  File "my_program.py", line 9, in <module>
  File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 2214, in _find_a
nd_load
  File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 2203, in _find_a
nd_load_unlocked
  File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 1191, in _load_u
nlocked
  File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 1161, in _load_b
ackward_compatible
  File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 539, in _check_n
ame_wrapper
  File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 1692, in load_mo
dule
  File "c:\python\32-bit\3.4\lib\importlib\_bootstrap.py", line 321, in _call_wi
th_frames_removed
RuntimeError: Unable to import decimal

当我添加十进制作为包含时,我看到_decimal.pyd 包含在输出文件夹中,但仍然得到相同的运行时错误。

这是我的 setup.py:

import sys
from cx_Freeze import setup, Executable


build_exe_options = 
        'includes': ['decimal'],
        'include_files': ['connection settings.cfg']
        

setup(name = 'my_program', 
      version = '0.0.1', 
      description = """This program does stuff.""", 
      options = 'build_exe':build_exe_options,
      executables = [Executable('my_program.py')]
      )

我正在使用:

Windows 7 Python 3.4,32 位 cx-Freeze 4.3.3 pyodbc 3.0.7

更新: 这是构建时的输出:

C:\Users\my_name\Documents\Python>python my_program.py build
running build
running build_exe
creating directory build\exe.win32-3.4
copying C:\Python34\lib\site-packages\cx_Freeze\bases\Console.exe -> build\exe.w
in32-3.4\my_program.exe
copying C:\Windows\system32\python34.dll -> build\exe.win32-3.4\python34.dll
*** WARNING *** unable to create version resource
install pywin32 extensions first
writing zip file build\exe.win32-3.4\library.zip

  Name                      File
  ----                      ----
m BUILD_CONSTANTS
m ConfigParser              C:\Python34\lib\ConfigParser.py
m __future__                C:\Python34\lib\__future__.py
m _ast
m _bisect
m _bootlocale
m _bz2                      C:\Python34\DLLs\_bz2.pyd
m _codecs
m _codecs_cn
m _codecs_hk
m _codecs_iso2022
m _codecs_jp
m _codecs_kr
m _codecs_tw
m _collections
m _collections_abc
m _datetime
m _decimal                  C:\Python34\DLLs\_decimal.pyd
m _dummy_thread
m _functools
m _hashlib                  C:\Python34\DLLs\_hashlib.pyd
m _heapq
m _imp
m _io
m _locale
m _lzma                     C:\Python34\DLLs\_lzma.pyd
m _md5
m _multibytecodec
m _opcode
m _operator
m _osx_support              C:\Python34\lib\_osx_support.py
m _random
m _sha1
m _sha256
m _sha512
m _socket                   C:\Python34\DLLs\_socket.pyd
m _sre
m _ssl                      C:\Python34\DLLs\_ssl.pyd
m _stat
m _string
m _strptime
m _struct
m _thread
m _threading_local
m _warnings
m _weakref
m _weakrefset
m _winapi
m abc
m argparse
m array
m ast                       C:\Python34\lib\ast.py
m atexit
m base64
m bdb                       C:\Python34\lib\bdb.py
m binascii
m bisect                    C:\Python34\lib\bisect.py
m builtins
m bz2
m calendar
m cmd                       C:\Python34\lib\cmd.py
m code                      C:\Python34\lib\code.py
m codecs
m codeop                    C:\Python34\lib\codeop.py
P collections
m collections.abc
m configparser              C:\Python34\lib\configparser.py
m contextlib
m copy
m copyreg
m cx_Freeze__init__         C:\Python34\lib\site-packages\cx_Freeze\initscripts\
Console.py
m datetime
m decimal                   C:\Python34\lib\decimal.py
m difflib                   C:\Python34\lib\difflib.py
m dis                       C:\Python34\lib\dis.py
P distutils                 C:\Python34\lib\distutils\__init__.py
m distutils.debug           C:\Python34\lib\distutils\debug.py
m distutils.errors          C:\Python34\lib\distutils\errors.py
m distutils.log             C:\Python34\lib\distutils\log.py
m distutils.spawn           C:\Python34\lib\distutils\spawn.py
m distutils.sysconfig       C:\Python34\lib\distutils\sysconfig.py
m distutils.text_file       C:\Python34\lib\distutils\text_file.py
m doctest                   C:\Python34\lib\doctest.py
m dummy_threading
P email                     C:\Python34\lib\email\__init__.py
m email._encoded_words      C:\Python34\lib\email\_encoded_words.py
m email._header_value_parser C:\Python34\lib\email\_header_value_parser.py
m email._parseaddr          C:\Python34\lib\email\_parseaddr.py
m email._policybase         C:\Python34\lib\email\_policybase.py
m email.base64mime          C:\Python34\lib\email\base64mime.py
m email.charset             C:\Python34\lib\email\charset.py
m email.contentmanager      C:\Python34\lib\email\contentmanager.py
m email.encoders            C:\Python34\lib\email\encoders.py
m email.errors              C:\Python34\lib\email\errors.py
m email.feedparser          C:\Python34\lib\email\feedparser.py
m email.generator           C:\Python34\lib\email\generator.py
m email.header              C:\Python34\lib\email\header.py
m email.headerregistry      C:\Python34\lib\email\headerregistry.py
m email.iterators           C:\Python34\lib\email\iterators.py
m email.message             C:\Python34\lib\email\message.py
m email.parser              C:\Python34\lib\email\parser.py
m email.policy              C:\Python34\lib\email\policy.py
m email.quoprimime          C:\Python34\lib\email\quoprimime.py
m email.utils               C:\Python34\lib\email\utils.py
P encodings
m encodings.aliases
m encodings.ascii
m encodings.base64_codec
m encodings.big5
m encodings.big5hkscs
m encodings.bz2_codec
m encodings.charmap
m encodings.cp037
m encodings.cp1006
m encodings.cp1026
m encodings.cp1125
m encodings.cp1140
m encodings.cp1250
m encodings.cp1251
m encodings.cp1252
m encodings.cp1253
m encodings.cp1254
m encodings.cp1255
m encodings.cp1256
m encodings.cp1257
m encodings.cp1258
m encodings.cp273
m encodings.cp424
m encodings.cp437
m encodings.cp500
m encodings.cp65001
m encodings.cp720
m encodings.cp737
m encodings.cp775
m encodings.cp850
m encodings.cp852
m encodings.cp855
m encodings.cp856
m encodings.cp857
m encodings.cp858
m encodings.cp860
m encodings.cp861
m encodings.cp862
m encodings.cp863
m encodings.cp864
m encodings.cp865
m encodings.cp866
m encodings.cp869
m encodings.cp874
m encodings.cp875
m encodings.cp932
m encodings.cp949
m encodings.cp950
m encodings.euc_jis_2004
m encodings.euc_jisx0213
m encodings.euc_jp
m encodings.euc_kr
m encodings.gb18030
m encodings.gb2312
m encodings.gbk
m encodings.hex_codec
m encodings.hp_roman8
m encodings.hz
m encodings.idna
m encodings.iso2022_jp
m encodings.iso2022_jp_1
m encodings.iso2022_jp_2
m encodings.iso2022_jp_2004
m encodings.iso2022_jp_3
m encodings.iso2022_jp_ext
m encodings.iso2022_kr
m encodings.iso8859_1
m encodings.iso8859_10
m encodings.iso8859_11
m encodings.iso8859_13
m encodings.iso8859_14
m encodings.iso8859_15
m encodings.iso8859_16
m encodings.iso8859_2
m encodings.iso8859_3
m encodings.iso8859_4
m encodings.iso8859_5
m encodings.iso8859_6
m encodings.iso8859_7
m encodings.iso8859_8
m encodings.iso8859_9
m encodings.johab
m encodings.koi8_r
m encodings.koi8_u
m encodings.latin_1
m encodings.mac_arabic
m encodings.mac_centeuro
m encodings.mac_croatian
m encodings.mac_cyrillic
m encodings.mac_farsi
m encodings.mac_greek
m encodings.mac_iceland
m encodings.mac_latin2
m encodings.mac_roman
m encodings.mac_romanian
m encodings.mac_turkish
m encodings.mbcs
m encodings.palmos
m encodings.ptcp154
m encodings.punycode
m encodings.quopri_codec
m encodings.raw_unicode_escape
m encodings.rot_13
m encodings.shift_jis
m encodings.shift_jis_2004
m encodings.shift_jisx0213
m encodings.tis_620
m encodings.undefined
m encodings.unicode_escape
m encodings.unicode_internal
m encodings.utf_16
m encodings.utf_16_be
m encodings.utf_16_le
m encodings.utf_32
m encodings.utf_32_be
m encodings.utf_32_le
m encodings.utf_7
m encodings.utf_8
m encodings.utf_8_sig
m encodings.uu_codec
m encodings.zlib_codec
m enum                      C:\Python34\lib\enum.py
m errno
m fnmatch                   C:\Python34\lib\fnmatch.py
m ftplib                    C:\Python34\lib\ftplib.py
m functools
m gc
m genericpath
m getopt                    C:\Python34\lib\getopt.py
m getpass                   C:\Python34\lib\getpass.py
m gettext
m glob                      C:\Python34\lib\glob.py
m gzip                      C:\Python34\lib\gzip.py
m hashlib                   C:\Python34\lib\hashlib.py
m heapq
P html                      C:\Python34\lib\html\__init__.py
m html.entities             C:\Python34\lib\html\entities.py
P http                      C:\Python34\lib\http\__init__.py
m http.client               C:\Python34\lib\http\client.py
m http.cookiejar            C:\Python34\lib\http\cookiejar.py
m http.server               C:\Python34\lib\http\server.py
m imp                       C:\Python34\lib\imp.py
P importlib                 C:\Python34\lib\importlib\__init__.py
P importlib                 C:\Python34\lib\importlib\__init__.py
m importlib._bootstrap
m importlib._bootstrap      C:\Python34\lib\importlib\_bootstrap.py
m importlib.machinery       C:\Python34\lib\importlib\machinery.py
m importlib.util            C:\Python34\lib\importlib\util.py
m inspect                   C:\Python34\lib\inspect.py
m io
m itertools
m keyword
m linecache
m locale
P logging                   C:\Python34\lib\logging\__init__.py
m lzma                      C:\Python34\lib\lzma.py
m my_program__main__   my_program.py
m marshal
m math
m mimetypes                 C:\Users\clee\Documents\Python\mimetypes.py
m msvcrt
m nt
m ntpath
m nturl2path                C:\Python34\lib\nturl2path.py
m numbers                   C:\Python34\lib\numbers.py
m opcode                    C:\Python34\lib\opcode.py
m operator
m optparse
m os
m pdb                       C:\Python34\lib\pdb.py
m pkgutil                   C:\Python34\lib\pkgutil.py
m platform                  C:\Python34\lib\platform.py
m plistlib                  C:\Python34\lib\plistlib.py
m posixpath
m pprint                    C:\Python34\lib\pprint.py
m py_compile                C:\Python34\lib\py_compile.py
m pydoc                     C:\Python34\lib\pydoc.py
P pydoc_data                C:\Python34\lib\pydoc_data\__init__.py
m pydoc_data.topics         C:\Python34\lib\pydoc_data\topics.py
m pyexpat                   C:\Python34\DLLs\pyexpat.pyd
m pyodbc                    C:\Python34\lib\site-packages\pyodbc-3.0.7-py3.4-win
32.egg\pyodbc.pyd
m quopri
m random                    C:\Python34\lib\random.py
m re
m reprlib
m select                    C:\Python34\DLLs\select.pyd
m selectors                 C:\Python34\lib\selectors.py
m shlex                     C:\Python34\lib\shlex.py
m shutil                    C:\Python34\lib\shutil.py
m signal
m socket                    C:\Python34\lib\socket.py
m socketserver              C:\Python34\lib\socketserver.py
m sre_compile
m sre_constants
m sre_parse
m ssl                       C:\Python34\lib\ssl.py
m stat
m string
m stringprep
m struct
m subprocess                C:\Python34\lib\subprocess.py
m sys
m tarfile                   C:\Python34\lib\tarfile.py
m tempfile                  C:\Python34\lib\tempfile.py
m textwrap
m threading
m time
m token
m tokenize
m traceback
m tty                       C:\Python34\lib\tty.py
m types
m unicodedata               C:\Python34\DLLs\unicodedata.pyd
P unittest                  C:\Python34\lib\unittest\__init__.py
m unittest.case             C:\Python34\lib\unittest\case.py
m unittest.loader           C:\Python34\lib\unittest\loader.py
m unittest.main             C:\Python34\lib\unittest\main.py
m unittest.result           C:\Python34\lib\unittest\result.py
m unittest.runner           C:\Python34\lib\unittest\runner.py
m unittest.signals          C:\Python34\lib\unittest\signals.py
m unittest.suite            C:\Python34\lib\unittest\suite.py
m unittest.util             C:\Python34\lib\unittest\util.py
P urllib                    C:\Python34\lib\urllib\__init__.py
m urllib.error              C:\Python34\lib\urllib\error.py
m urllib.parse              C:\Python34\lib\urllib\parse.py
m urllib.request            C:\Python34\lib\urllib\request.py
m urllib.response           C:\Python34\lib\urllib\response.py
m uu                        C:\Python34\lib\uu.py
m warnings
m weakref
m webbrowser                C:\Python34\lib\webbrowser.py
m winreg
P xml                       C:\Python34\lib\xml\__init__.py
P xml.dom                   C:\Python34\lib\xml\dom\__init__.py
m xml.dom.NodeFilter        C:\Python34\lib\xml\dom\NodeFilter.py
m xml.dom.domreg            C:\Python34\lib\xml\dom\domreg.py
m xml.dom.expatbuilder      C:\Python34\lib\xml\dom\expatbuilder.py
m xml.dom.minicompat        C:\Python34\lib\xml\dom\minicompat.py
m xml.dom.minidom           C:\Python34\lib\xml\dom\minidom.py
m xml.dom.pulldom           C:\Python34\lib\xml\dom\pulldom.py
m xml.dom.xmlbuilder        C:\Python34\lib\xml\dom\xmlbuilder.py
P xml.parsers               C:\Python34\lib\xml\parsers\__init__.py
m xml.parsers.expat         C:\Python34\lib\xml\parsers\expat.py
P xml.sax                   C:\Python34\lib\xml\sax\__init__.py
m xml.sax._exceptions       C:\Python34\lib\xml\sax\_exceptions.py
m xml.sax.expatreader       C:\Python34\lib\xml\sax\expatreader.py
m xml.sax.handler           C:\Python34\lib\xml\sax\handler.py
m xml.sax.saxutils          C:\Python34\lib\xml\sax\saxutils.py
m xml.sax.xmlreader         C:\Python34\lib\xml\sax\xmlreader.py
m zipfile                   C:\Python34\lib\zipfile.py
m zipimport
m zlib

Missing modules:
? __main__ imported from bdb, pdb
? _dummy_threading imported from dummy_threading
? _posixsubprocess imported from subprocess
? _scproxy imported from urllib.request
? ce imported from os
? grp imported from shutil, tarfile
? java.lang imported from platform, xml.sax._exceptions
? org.python.core imported from copy, xml.sax
? os.path imported from os, pkgutil, py_compile, shutil, unittest.util
? posix imported from os
? pwd imported from getpass, http.server, posixpath, shutil, tarfile, webbrowser

? termios imported from getpass, tty
? vms_lib imported from platform
? win32api imported from platform
? win32con imported from platform
This is not necessarily a problem - the modules may not be needed on this platfo
rm.

C:\Python34\lib\site-packages\cx_Freeze\freezer.py:574: UserWarning: Duplicate n
ame: 'importlib/__init__.pyc'
  outFile.writestr(zinfo, data)
copying C:\Python34\DLLs\_bz2.pyd -> build\exe.win32-3.4\_bz2.pyd
copying C:\Python34\DLLs\_decimal.pyd -> build\exe.win32-3.4\_decimal.pyd
copying C:\Python34\DLLs\_hashlib.pyd -> build\exe.win32-3.4\_hashlib.pyd
copying C:\Python34\DLLs\_lzma.pyd -> build\exe.win32-3.4\_lzma.pyd
copying C:\Python34\DLLs\_socket.pyd -> build\exe.win32-3.4\_socket.pyd
copying C:\Python34\DLLs\_ssl.pyd -> build\exe.win32-3.4\_ssl.pyd
copying C:\Python34\DLLs\pyexpat.pyd -> build\exe.win32-3.4\pyexpat.pyd
copying C:\Python34\lib\site-packages\pyodbc-3.0.7-py3.4-win32.egg\pyodbc.pyd ->
 build\exe.win32-3.4\pyodbc.pyd
copying C:\Python34\DLLs\select.pyd -> build\exe.win32-3.4\select.pyd
copying C:\Python34\DLLs\unicodedata.pyd -> build\exe.win32-3.4\unicodedata.pyd
copying connection settings.cfg -> build\exe.win32-3.4\connection settings.cfg

【问题讨论】:

你能显示冻结的日志吗? 我在构建时已在 cmd 窗口中添加了输出。你是这个意思吗?我在任何地方都没有看到日志文件。 这就是我的意思,谢谢。不幸的是,它没有显示任何可能的原因 - decimal_decimal 都发现正常。过几天我会尽量记住在我的 Windows VM 上进行测试。 【参考方案1】:

我在非常相似的设置中遇到了同样的问题,我可以让它工作的唯一方法是在我的 python 脚本中添加 import decimal 尝试将 import decimal 添加到 my_program.py

【讨论】:

以上是关于pyodbc python 3.4的cx_freeze错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python/pyodbc 插入 Access DB

python-excel读取-pyodbc

python操作数据库-SQLSERVER-pyodbc

pyodbc 安装不支持 python 3.5.1

Python pyodbc 游标与数据库游标

将pyodbc游标结果输出为python字典