是否有一种方法可以在Windows上使用32位python 2.7从线程打开64位exe?

问题描述 投票:1回答:1

我有一个用32位python 2.7构建的tkinter UI,我做了一个按钮,我最终希望在不中断UI的情况下打开外部应用程序(64位exe文件)。我的按钮启动了一个线程,该线程又启动了一个带有新控制台窗口的子进程,并调用了我的exe文件的完整路径。如果我在python脚本之外的cmd窗口中键入此完整路径,则我的应用程序成功打开。

我收到错误:WindowsError:[错误193]%1不是有效的Win32应用程序

我知道这需要运行64位版本的python或32位版本的应用程序。但是,有没有一种替代解决方案可以用代码解决,而不用更改我的python或应用程序版本?为简单起见,我在下面提供了一些示例代码。

感谢您的帮助!

self.VMD_button = tk.Button(self, text="Launch VMD", command=self.show_VMD)

def show_VMD(self):
     VMD_cmd = '"%s"' % "C:\VMD.exe"
     thread= Thread(target=self.call_subprocess, args=[VMD_cmd])
     thread.daemon = True
     thread.start()

def call_subprocess(self, cmd):
     proc = subprocess.Popen(cmd, creationflags=subprocess.CREATE_NEW_CONSOLE).wait()
python multithreading python-2.7 subprocess 32bit-64bit
1个回答
0
投票

据我所知,答案是“否”。而且,发生的事情就是您刚刚得到的。您的应用程序是32位的,因此只知道32位应用程序。它可能无法启动64位进程。相反的情况would起作用,因为存在backward(但不是前向)兼容性。

© www.soinside.com 2019 - 2024. All rights reserved.