【发布时间】:2014-08-08 20:40:48
【问题描述】:
我正在尝试将 python 脚本转换为 windows exe 文件。我按照 py2exe 教程查看了一些使用 py2exe 安装的示例,并创建了一个 setup.py 文件,该文件将适当的 VC dll 附加到系统路径
from distutils.core import setup
import py2exe
import sys
sys.path.append("C:\\My_VC_dlls")
然后将它们复制到 dist 文件夹中
from glob import glob
data_files = [("Microsoft.VC90.CRT", glob(r'C:\My_VC_dlls\*.*'))]
然后将选项传递给设置
setup(
options = {"py2exe": {"compressed": 1, "optimize": 2,
"ascii": 1, "bundle_files": 1}},
zipfile = None,
data_files=data_files,
console = ['my_python.py']
)
我运行 setup.py py2exe 并构建可执行文件并且运行良好
有人问我是否要让 exe 看起来更像一个 Windows 程序,所以我正在尝试做一个实例化类的示例 singlefile/gui(安装了 py2exe):Target
class Target:
def__ Blah Blah Blah
清单模板
manifest_templete = '''
...
然后
test_wx = Target(
description = "....
.....
然后基本相同的设置选项,但有:
setup(
options...
....
windows = [test_wx]
对脚本名称等进行了适当的更改(test_wx.py --> my_python.py)
它会构建 exe,但是当我启动它时,“该程序无法启动,因为缺少 MSVCR90.dll”
我的问题是,似乎当告诉 py2exe 它是一个控制台应用程序时,构建的 exe 知道在 dist/MICROSOFT.VC90.CRT/ 中查找 DLL,但是当告诉 py2exe 它是一个 Windows 应用程序时,内置的exe没有。简而言之,我如何让这个问题消失?如何将 DLL 的位置嵌入到构建的 exe 中?
如果这是一个微不足道的问题,请提前抱歉。我是 Python 和 Windows 编程的新手。
【问题讨论】: