是否可以在 Vista 上构建 exe 并使用 py2exe 在 XP 上部署

2024-01-04

我在 Windows Vista 上使用 python 创建了一些程序。但我想将它部署在 Windows XP 上。是否有必要在Windows XP上进行新的构建?或者是否有可能构建在这两个系统上都可以运行的版本?

编辑(编辑2 - 非常简单的程序也不起作用):我的设置:

from distutils.core import setup
import py2exe

setup(console=['orderer.py'])

使用依赖项资源管理器我检查了依赖项是:

msvcr90.dll
kernel32.dll
  +ntdll.dll

差不多解决了:

我发现安装:做这件事。但我之前尝试手动提供msvrc90.dll,但没有成功,有什么办法可以自动重新分发它吗?或者我必须向他提供这个安装文件。

最后也是主要问题

现在我遇到了 msvcrt.dll 的问题。 Windows XP 上出现的消息:

过程入口点 wcsscpy_s 无法在动态中找到 链接库msvcrt.dll

在 Vista 上我有版本 7.0.6001.18000

但在 XP 7.0.2600.5512 上

有没有办法来解决这个问题?

看来我没有排除一些 dll...愚蠢的错误:

$ grep -lir msvcrt.dll .
./buildout
./buildtest.py
./dist/ACTIVEDS.dll
./dist/adsldpc.dll
./dist/ATL.DLL
./dist/credui.dll
./dist/DSOUND.dll
./dist/MAPI32.dll
./dist/PROPSYS.dll
./dist/WLDAP32.dll

现在可以了!


在 py2exe 创建的可执行文件以及 msvcr90.dll、msvcp90.dll 和 msvcm90.dll 文件旁边创建一个名为“Microsoft.VC90.CRT.manifest”的文件,其中包含以下内容:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <noInheritable/>
    <assemblyIdentity
        type="win32"
        name="Microsoft.VC90.CRT"
        version="9.0.21022.8"
        processorArchitecture="x86"
        publicKeyToken="1fc8b3b9a1e18e3b"
    />
    <file name="msvcr90.dll" />
    <file name="msvcp90.dll" />
    <file name="msvcm90.dll" />
</assembly>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以在 Vista 上构建 exe 并使用 py2exe 在 XP 上部署 的相关文章

随机推荐