所以我正在尝试制作一个 exe 文件。我使用的是 python 2.7,据我所知,我安装了正确版本的 py2exe。我编写了一个简单的 setup.py 代码来创建 exe 文件。
但是,当我运行它时,出现错误:
错误:MSVCP90.dll:没有那个文件或目录
现在,我尝试通过两种方式解决这个问题:
- 我安装了 MSVCP90.dll 文件并将其与 python27 dll 放在一起,然后运行安装程序。这成功创建了一个可执行文件。但是,当我尝试运行可执行文件时,它说:
程序无法启动,因为您的计算机缺少 MSVCR90.dll。尝试重新安装程序以解决此问题。
我已经下载了这个 dll 并将其放入 python27 和 exe 中以查看会发生什么,但都没有用。
- 我排除了安装文件中使用的 MSVCP90.dll 文件。同样,这成功创建了一个可执行文件,但我在单击它时遇到了同样的错误。
我已经重新安装了 python 和 py2exe 无数次,但没有帮助。
有没有人知道我可以做些什么来让这个可执行文件正常工作?
最佳答案
正如您在评论中提到的,您正在使用 wxpython。我对 wxpython 和 py2exe 有同样的问题。我通过将 MSVCP90.dll 的 list 添加到 exe 文件来解决它。尝试将这些行添加到 setup.py 并查看它是否有效。
manifest = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="5.0.0.0"
processorArchitecture="x86"
name="%(prog)s"
type="win32"
/>
<description>%(prog)s</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false">
</requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.VC90.CRT"
version="9.0.21022.8"
processorArchitecture="x86"
publicKeyToken="1fc8b3b9a1e18e3b">
</assemblyIdentity>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>"""
...
windows = [{"script":"myscript.pyw",'other_resources': [(24,1,manifest)]}]
关于python - 使用 py2exe 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9057094/