python程序格式构架_python – 在构建pyinstaller可执行文件时,我可以控制架构(32位vs 64位)吗?...

短问题

在构建pyinstaller可执行文件时,是否有任何方式来控制/保证架构(32位vs 64位)?

背景

我从py2exe迁移到pyinstaller,因为缺少64位支持,还有一大堆小事情,我很难过。所以在这个说法上,我宁愿不回去。我已经开发了两个使用Python 2.7 64位的应用程序,并在运行32位机器时遇到性能问题。

第一个是简单的wxPython GUI(版本2.9),并连接到Windows驱动程序的Windows DLL文件。这个似乎很“安全”地运行为32位,因为没有只有64位的模块。但是,当运行在32位Windows XP上的这个应用程序在与USB设备通话时出现了可怕的性能问题。

第二个应用程序是更大的,我没有尝试构建和运行,因为担心架构问题。这个应用程序在其中使用了64位模块(psycopg2一个)。如果不可能作为32位可执行文件运行,我想远离尝试构建它。

当前的想法

我觉得这是可能的(如果模块有32位支持)通过运行build.py与Python强制在32位模式。这是否有意义?

更新

我正在建设的第一个程序有几个突破。事实证明,性能问题仅仅是基于两台机器的速度。我的开发机器有足够的权力轮询USB设备足够快,而且测试平台(Windows XP)没有那么慢。

我通过修改我调查USB端口的方式来解决这个问题。现在这是固定的,我可以在两个系统上运行exe。尝试将可执行文件构建为单个文件时出现了一个新问题。当运行pyinstaller的Build.py时,它会拖动应用程序运行所需的所有DLL。这似乎起初很好,但是当我尝试运行我在Windows 7 64bit上构建的单独exe时,它不会在Windows XP上运行,因为USB加密狗的DLL未被识别为有效的DLL。

为了让单个exe在两个系统上运行,我首先尝试从.spec文件中删除该DLL(这似乎是一个python脚本)。这很方便,因为我可以使用普通的python list修饰符修改build命令之前的include列表。我的希望是,如果在exe的临时目录中找不到DLL,它将在系统PATH上找到它。虽然这种方法可能有效,但我无法让它运行,而不会抛出很多错误。

我的第二个尝试是在Windows XP机器上构建应用程序(留下DLL嵌入),希望Win XP DLL可以在Windows 7中运行。此配置工作正常;但是,我强烈认为这不是最好的解决方案,因为它仅仅依赖于在较新的操作系统上运行的较旧的DLL。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值