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

Python 是否可以在Vista上构建exe并使用py2exe在XP上部署,python,windows-vista,exe,py2exe,Python,Windows Vista,Exe,Py2exe,我在WindowsVista上使用python创建了一些程序。但我想在Windows XP上部署它。是否有必要在windows XP上进行新的构建?或者有可能建立一个在这两个系统上都能工作的系统 编辑(编辑2-非常简单的程序也不起作用): 我的设置: from distutils.core import setup import py2exe setup(console=['orderer.py']) 使用依赖项资源管理器,我检查了依赖项是否为: msvcr90.dll kernel32.d

我在WindowsVista上使用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

现在它工作了

如果vista系统上有32位python,并使用py2exe创建exe,那么它也应该在XP上运行

你遇到什么问题了吗?如果是,它们是什么?

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

<?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>


只有一条消息:系统无法执行指定的程序。您能用更多信息更新您的问题吗?就像您用来编译exe的distils脚本一样。最有可能的是,您在目标XP系统上缺少了一些应该包含的dll。创建此文件并添加这些dll后,我仍然会得到“过程入口点wcsscpy_s无法位于动态链接库msvcrt.dll中”,您的程序不应依赖于两个C运行时库。尝试查找msvcrt.dll的依赖项来自何处,例如,在*.pyd和*.dll文件上使用DependencyWalker()和winsta.dll,但我不提供它们中的任何一个。。。还在搜索那个文件是从哪里来的?Ctypes.pyd通常随Python一起提供,并且只依赖于msvcr90(Python>=2.6)或msvcr71(Python 2.5)。我想我通过使用msvcrt.dll删除所有dll解决了这个问题!谢谢你,先生,我会把这个话题再谈一天,如果一切顺利,我会给你一笔赏金。