使用pyinstaller无法通过通过wexpect生成函数连接的两个python脚本制作exe文件

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

我在这里几乎是个菜鸟,我两周前开始编码,遇到一个问题,我搜索了很多东西,但是由于我对编程的理解能力有限,所以我认为我无法解决这个问题,所以我离开了一个问题。

这是main.py中有问题的部分,main.py使用的是pyqt5,此def type_in(self)与一个按钮相连。

def type_in(self):
    name_keyword = self.textbox.text()
    xlsWork = wexpect.spawn(sys.executable, ['child.py'])
    xlsWork.expect("Name :")
    xlsWork.sendline(name_keyword)
    xlsWork.wait()

Child.py是一个具有输入功能的Excel控制脚本。

如果我在python3上运行,两个脚本不会有问题,然后我使用pyinstaller逐一检查了它们,它们分别工作正常。

但是,如果我尝试通过单击main.exe上的按钮来运行该功能,则会出现错误

这里是我尝试过的方法

  1. 仅将main.py包装到exe

错误:

\wexpect\host.py", line 375, in startChild
_, _, self.console_pid, __otid = win32process.CreateProcess(
pywintypes.error: (2, 'CreateProcess', 'The system cannot find the file specified.')
  1. pyinstaller --add-data "child.py;." main.py

错误:无法执行脚本pyiboot01_bootstrap

  1. 首先将child.py打包为exe,并将main.py的代码从(sys.executable,['child.py'])更改为(child.exe)

错误:说“没有响应”并自行关闭,没有其他错误消息我可以得到

  1. 下载了wexpect-master文件,因为对第一个有相同问题并且使用两个模块(wexpect,pyinstaller)的人说pyinstaller无法带来显式的python可执行文件,因此在正式的wexpect模块页面中指导我下载它并使用pyinstaller进行制作。 wexpect.spec到exe文件,并将其放置在main.exe的文件夹附近]

错误:如果单击了该按钮,则另一个UI打开,并且第一个UI没有响应,并且预期的功能也无法正常运行

我也检查了Best way to call subprocess scripts in a Python exe,因为我认为它在调用可执行文件的子处理方面存在问题,但我在这里迷路了,请帮助我

预期结果将是一个exe文件,该文件可以在甚至没有python的任何其他计算机中使用

提前感谢:)

python-3.x pyinstaller executable wexpect
1个回答
0
投票

但是,将pyinstaller与wexpect一起使用不是初学者的任务,我尝试提供帮助。

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