Cx_freeze exe 无法完全导入 docx
Cx_freeze exe failing to completely import docx
我有一个相当大的 python 脚本,我正在尝试 cx_freeze,但是当我 运行 可执行文件时,我不断收到同样的错误,它似乎是与docx模块相关。
我在 Windows 8.1 机器上使用 Python 3.3.5 和 docx 0.7.6-py33。
这是我的设置脚本。
from cx_Freeze import setup, Executable
includefiles = ['logo.ico','db.db','dbloc.bin']
includes = []
excludes = []
packages = ['tkinter','docx','sys', 'sqlite3', 'os', 'hashlib', 'random', 'uuid', 'base64', 'tempfile', 'win32api',
'winreg', 'ntplib', 'winsound', 'time', 'csv', 'webbrowser', 'inspect','datetime', 'decimal', 'ctypes',
'win32com.client','operator']
exe = Executable(
# what to build
script = "NEPOS.py",
initScript = None,
base = 'Win32GUI',
targetName = "Nepos.exe",
copyDependentFiles = True,
compress = True,
appendScriptToExe = True,
appendScriptToLibrary = True,
icon = 'Icon.ico'
)
setup(
name = "MyProgram",
version = "1.0.0",
description = 'Description',
author = "Joe Bloggs",
author_email = "123@gmail.com",
options = {"build_exe": {"excludes":excludes,"packages":packages,
"include_files":includefiles}},
executables = [exe]
)
这是我遇到的错误。
似乎无法找到属于 docx 的方法,但我的源代码调用 import docx
并且它在安装文件中被列为依赖模块,所以我不确定它们为什么'被包括在内。
经过一番折腾,我终于破解了这个问题。 docx
模块依赖于 lxml
。即使原始 .py
文件在仅导入 docx
时运行得非常好,当 cx_freezing 时,您需要通过将 lxml
添加到包中来明确声明依赖关系。
我有一个相当大的 python 脚本,我正在尝试 cx_freeze,但是当我 运行 可执行文件时,我不断收到同样的错误,它似乎是与docx模块相关。
我在 Windows 8.1 机器上使用 Python 3.3.5 和 docx 0.7.6-py33。
这是我的设置脚本。
from cx_Freeze import setup, Executable
includefiles = ['logo.ico','db.db','dbloc.bin']
includes = []
excludes = []
packages = ['tkinter','docx','sys', 'sqlite3', 'os', 'hashlib', 'random', 'uuid', 'base64', 'tempfile', 'win32api',
'winreg', 'ntplib', 'winsound', 'time', 'csv', 'webbrowser', 'inspect','datetime', 'decimal', 'ctypes',
'win32com.client','operator']
exe = Executable(
# what to build
script = "NEPOS.py",
initScript = None,
base = 'Win32GUI',
targetName = "Nepos.exe",
copyDependentFiles = True,
compress = True,
appendScriptToExe = True,
appendScriptToLibrary = True,
icon = 'Icon.ico'
)
setup(
name = "MyProgram",
version = "1.0.0",
description = 'Description',
author = "Joe Bloggs",
author_email = "123@gmail.com",
options = {"build_exe": {"excludes":excludes,"packages":packages,
"include_files":includefiles}},
executables = [exe]
)
这是我遇到的错误。
似乎无法找到属于 docx 的方法,但我的源代码调用 import docx
并且它在安装文件中被列为依赖模块,所以我不确定它们为什么'被包括在内。
经过一番折腾,我终于破解了这个问题。 docx
模块依赖于 lxml
。即使原始 .py
文件在仅导入 docx
时运行得非常好,当 cx_freezing 时,您需要通过将 lxml
添加到包中来明确声明依赖关系。