这与pyodbc的cx_freeze错误几乎完全相同,只是添加小数作为特定的include不起作用:冻结可以,但当尝试运行可执行文件时,我得到:
Traceback (most recent call last):
File "C:Python34libsite-packagescx_FreezeinitscriptsConsole.py", line 27
, in <module>
exec(code, m.__dict__)
File "my_program.py", line 9, in <module>
File "c:python32-bit3.4libimportlib_bootstrap.py", line 2214, in _find_a
nd_load
File "c:python32-bit3.4libimportlib_bootstrap.py", line 2203, in _find_a
nd_load_unlocked
File "c:python32-bit3.4libimportlib_bootstrap.py", line 1191, in _load_u
nlocked
File "c:python32-bit3.4libimportlib_bootstrap.py", line 1161, in _load_b
ackward_compatible
File "c:python32-bit3.4libimportlib_bootstrap.py", line 539, in _check_n
ame_wrapper
File "c:python32-bit3.4libimportlib_bootstrap.py", line 1692, in load_mo
dule
File "c:python32-bit3.4libimportlib_bootstrap.py", line 321, in _call_wi
th_frames_removed
RuntimeError: Unable to import decimal
当我将decimal添加为includes时,我看到_decimal.pyd
包含在输出文件夹中,但仍然会得到相同的运行时错误。
这是我的设置.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冻结4.3.3
- pyodbc 3.0.7
更新:以下是构建时的输出:
C:Usersmy_nameDocumentsPython>python my_program.py build
running build
running build_exe
creating directory buildexe.win32-3.4
copying C:Python34libsite-packagescx_FreezebasesConsole.exe -> buildexe.w
in32-3.4my_program.exe
copying C:Windowssystem32python34.dll -> buildexe.win32-3.4python34.dll
*** WARNING *** unable to create version resource
install pywin32 extensions first
writing zip file buildexe.win32-3.4library.zip
Name File
---- ----
m BUILD_CONSTANTS
m ConfigParser C:Python34libConfigParser.py
m __future__ C:Python34lib__future__.py
m _ast
m _bisect
m _bootlocale
m _bz2 C:Python34DLLs_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:Python34DLLs_decimal.pyd
m _dummy_thread
m _functools
m _hashlib C:Python34DLLs_hashlib.pyd
m _heapq
m _imp
m _io
m _locale
m _lzma C:Python34DLLs_lzma.pyd
m _md5
m _multibytecodec
m _opcode
m _operator
m _osx_support C:Python34lib_osx_support.py
m _random
m _sha1
m _sha256
m _sha512
m _socket C:Python34DLLs_socket.pyd
m _sre
m _ssl C:Python34DLLs_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:Python34libast.py
m atexit
m base64
m bdb C:Python34libbdb.py
m binascii
m bisect C:Python34libbisect.py
m builtins
m bz2
m calendar
m cmd C:Python34libcmd.py
m code C:Python34libcode.py
m codecs
m codeop C:Python34libcodeop.py
P collections
m collections.abc
m configparser C:Python34libconfigparser.py
m contextlib
m copy
m copyreg
m cx_Freeze__init__ C:Python34libsite-packagescx_Freezeinitscripts
Console.py
m datetime
m decimal C:Python34libdecimal.py
m difflib C:Python34libdifflib.py
m dis C:Python34libdis.py
P distutils C:Python34libdistutils__init__.py
m distutils.debug C:Python34libdistutilsdebug.py
m distutils.errors C:Python34libdistutilserrors.py
m distutils.log C:Python34libdistutilslog.py
m distutils.spawn C:Python34libdistutilsspawn.py
m distutils.sysconfig C:Python34libdistutilssysconfig.py
m distutils.text_file C:Python34libdistutilstext_file.py
m doctest C:Python34libdoctest.py
m dummy_threading
P email C:Python34libemail__init__.py
m email._encoded_words C:Python34libemail_encoded_words.py
m email._header_value_parser C:Python34libemail_header_value_parser.py
m email._parseaddr C:Python34libemail_parseaddr.py
m email._policybase C:Python34libemail_policybase.py
m email.base64mime C:Python34libemailbase64mime.py
m email.charset C:Python34libemailcharset.py
m email.contentmanager C:Python34libemailcontentmanager.py
m email.encoders C:Python34libemailencoders.py
m email.errors C:Python34libemailerrors.py
m email.feedparser C:Python34libemailfeedparser.py
m email.generator C:Python34libemailgenerator.py
m email.header C:Python34libemailheader.py
m email.headerregistry C:Python34libemailheaderregistry.py
m email.iterators C:Python34libemailiterators.py
m email.message C:Python34libemailmessage.py
m email.parser C:Python34libemailparser.py
m email.policy C:Python34libemailpolicy.py
m email.quoprimime C:Python34libemailquoprimime.py
m email.utils C:Python34libemailutils.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:Python34libenum.py
m errno
m fnmatch C:Python34libfnmatch.py
m ftplib C:Python34libftplib.py
m functools
m gc
m genericpath
m getopt C:Python34libgetopt.py
m getpass C:Python34libgetpass.py
m gettext
m glob C:Python34libglob.py
m gzip C:Python34libgzip.py
m hashlib C:Python34libhashlib.py
m heapq
P html C:Python34libhtml__init__.py
m html.entities C:Python34libhtmlentities.py
P http C:Python34libhttp__init__.py
m http.client C:Python34libhttpclient.py
m http.cookiejar C:Python34libhttpcookiejar.py
m http.server C:Python34libhttpserver.py
m imp C:Python34libimp.py
P importlib C:Python34libimportlib__init__.py
P importlib C:Python34libimportlib__init__.py
m importlib._bootstrap
m importlib._bootstrap C:Python34libimportlib_bootstrap.py
m importlib.machinery C:Python34libimportlibmachinery.py
m importlib.util C:Python34libimportlibutil.py
m inspect C:Python34libinspect.py
m io
m itertools
m keyword
m linecache
m locale
P logging C:Python34liblogging__init__.py
m lzma C:Python34liblzma.py
m my_program__main__ my_program.py
m marshal
m math
m mimetypes C:UserscleeDocumentsPythonmimetypes.py
m msvcrt
m nt
m ntpath
m nturl2path C:Python34libnturl2path.py
m numbers C:Python34libnumbers.py
m opcode C:Python34libopcode.py
m operator
m optparse
m os
m pdb C:Python34libpdb.py
m pkgutil C:Python34libpkgutil.py
m platform C:Python34libplatform.py
m plistlib C:Python34libplistlib.py
m posixpath
m pprint C:Python34libpprint.py
m py_compile C:Python34libpy_compile.py
m pydoc C:Python34libpydoc.py
P pydoc_data C:Python34libpydoc_data__init__.py
m pydoc_data.topics C:Python34libpydoc_datatopics.py
m pyexpat C:Python34DLLspyexpat.pyd
m pyodbc C:Python34libsite-packagespyodbc-3.0.7-py3.4-win
32.eggpyodbc.pyd
m quopri
m random C:Python34librandom.py
m re
m reprlib
m select C:Python34DLLsselect.pyd
m selectors C:Python34libselectors.py
m shlex C:Python34libshlex.py
m shutil C:Python34libshutil.py
m signal
m socket C:Python34libsocket.py
m socketserver C:Python34libsocketserver.py
m sre_compile
m sre_constants
m sre_parse
m ssl C:Python34libssl.py
m stat
m string
m stringprep
m struct
m subprocess C:Python34libsubprocess.py
m sys
m tarfile C:Python34libtarfile.py
m tempfile C:Python34libtempfile.py
m textwrap
m threading
m time
m token
m tokenize
m traceback
m tty C:Python34libtty.py
m types
m unicodedata C:Python34DLLsunicodedata.pyd
P unittest C:Python34libunittest__init__.py
m unittest.case C:Python34libunittestcase.py
m unittest.loader C:Python34libunittestloader.py
m unittest.main C:Python34libunittestmain.py
m unittest.result C:Python34libunittestresult.py
m unittest.runner C:Python34libunittestrunner.py
m unittest.signals C:Python34libunittestsignals.py
m unittest.suite C:Python34libunittestsuite.py
m unittest.util C:Python34libunittestutil.py
P urllib C:Python34liburllib__init__.py
m urllib.error C:Python34liburlliberror.py
m urllib.parse C:Python34liburllibparse.py
m urllib.request C:Python34liburllibrequest.py
m urllib.response C:Python34liburllibresponse.py
m uu C:Python34libuu.py
m warnings
m weakref
m webbrowser C:Python34libwebbrowser.py
m winreg
P xml C:Python34libxml__init__.py
P xml.dom C:Python34libxmldom__init__.py
m xml.dom.NodeFilter C:Python34libxmldomNodeFilter.py
m xml.dom.domreg C:Python34libxmldomdomreg.py
m xml.dom.expatbuilder C:Python34libxmldomexpatbuilder.py
m xml.dom.minicompat C:Python34libxmldomminicompat.py
m xml.dom.minidom C:Python34libxmldomminidom.py
m xml.dom.pulldom C:Python34libxmldompulldom.py
m xml.dom.xmlbuilder C:Python34libxmldomxmlbuilder.py
P xml.parsers C:Python34libxmlparsers__init__.py
m xml.parsers.expat C:Python34libxmlparsersexpat.py
P xml.sax C:Python34libxmlsax__init__.py
m xml.sax._exceptions C:Python34libxmlsax_exceptions.py
m xml.sax.expatreader C:Python34libxmlsaxexpatreader.py
m xml.sax.handler C:Python34libxmlsaxhandler.py
m xml.sax.saxutils C:Python34libxmlsaxsaxutils.py
m xml.sax.xmlreader C:Python34libxmlsaxxmlreader.py
m zipfile C:Python34libzipfile.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:Python34libsite-packagescx_Freezefreezer.py:574: UserWarning: Duplicate n
ame: 'importlib/__init__.pyc'
outFile.writestr(zinfo, data)
copying C:Python34DLLs_bz2.pyd -> buildexe.win32-3.4_bz2.pyd
copying C:Python34DLLs_decimal.pyd -> buildexe.win32-3.4_decimal.pyd
copying C:Python34DLLs_hashlib.pyd -> buildexe.win32-3.4_hashlib.pyd
copying C:Python34DLLs_lzma.pyd -> buildexe.win32-3.4_lzma.pyd
copying C:Python34DLLs_socket.pyd -> buildexe.win32-3.4_socket.pyd
copying C:Python34DLLs_ssl.pyd -> buildexe.win32-3.4_ssl.pyd
copying C:Python34DLLspyexpat.pyd -> buildexe.win32-3.4pyexpat.pyd
copying C:Python34libsite-packagespyodbc-3.0.7-py3.4-win32.eggpyodbc.pyd ->
buildexe.win32-3.4pyodbc.pyd
copying C:Python34DLLsselect.pyd -> buildexe.win32-3.4select.pyd
copying C:Python34DLLsunicodedata.pyd -> buildexe.win32-3.4unicodedata.pyd
copying connection settings.cfg -> buildexe.win32-3.4connection settings.cfg
我在一个非常相似的设置中遇到了同样的问题,唯一能让它工作的方法是将import decimal添加到我的python脚本中,尝试将import decimal添加至my_program.py