我正在尝试将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编程的新手。
答案 0 :(得分:1)
您是否尝试在应用中调用sys.path.append(" dist / MICROSOFT.VC90 ... /")? (不是setup.py)
如何将vc90 dll放在主可执行文件旁边,而不是放在子目录中。