鱼C论坛

 找回密码
 立即注册
查看: 5535|回复: 20

[已解决]python编译的exe运行出错

[复制链接]
发表于 2022-10-23 22:58:43 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求助各位大佬,使用python编译的exe直接点击可以运行,但是使用c++调用就报错。直接运行源码不会报错,使用c++调用cmd执行发现创建进程池语句报错。此问题出现在win7系统,部分电脑会报错。
最佳答案
2022-10-24 18:01:53
南理马德华 发表于 2022-10-24 15:14
这些都试过了,还是不起作用,进程池函数在主函数中,且主函数首句加了freezing_support(),此报错绘制win ...

你不介意你的代码的话,可以把相关文件打包上来。
说明问题 。
这样不就好解决了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-23 23:11:50 | 显示全部楼层
          在低于等于 Python v3.8.10 版本的 Python 环境中打包,因为,如果超过这个版本,打包的 exe 会不支持 Win7。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-10-23 23:31:41 | 显示全部楼层
jackz007 发表于 2022-10-23 23:11
在低于等于 Python v3.8.10 版本的 Python 环境中打包,因为,如果超过这个版本,打包的 exe 会 ...

在3.8.2版本中打包的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-23 23:36:13 | 显示全部楼层
pool = multiprocessing.Pool(n_process)出错语句
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-23 23:47:12 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-10-24 01:08:44 From FishC Mobile | 显示全部楼层
报什么错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-24 15:13:07 | 显示全部楼层

main.exe已停止工作,通过代码调试到启动进程池语句会直接崩溃,windows弹窗提示程序出现问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-24 15:14:54 | 显示全部楼层
ba21 发表于 2022-10-23 23:47
参考:
http://www.1118pc.com/show_pdetails.asp?id=1010

这些都试过了,还是不起作用,进程池函数在主函数中,且主函数首句加了freezing_support(),此报错绘制win7和大部分i5处理器的电脑上出现
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-24 18:01:53 | 显示全部楼层    本楼为最佳答案   
南理马德华 发表于 2022-10-24 15:14
这些都试过了,还是不起作用,进程池函数在主函数中,且主函数首句加了freezing_support(),此报错绘制win ...

你不介意你的代码的话,可以把相关文件打包上来。
说明问题 。
这样不就好解决了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-24 20:39:50 | 显示全部楼层
ba21 发表于 2022-10-24 18:01
你不介意你的代码的话,可以把相关文件打包上来。
说明问题 。
这样不就好解决了?

import multiprocessing

if __name__ == "__main__":
    multiprocessing.freeze_support()
    pool = multiprocessing.Pool(10)
    print(pool)

代码核心部分不方便,但是核心代码运行报错就是在进程池开启部分崩溃
exe不会上传
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-24 22:21:58 | 显示全部楼层
南理马德华 发表于 2022-10-24 20:39
import multiprocessing

if __name__ == "__main__":

你就把这段代码,实现一个简单的多进程然后打包测试下,看出不出问题 。

对了
pool = multiprocessing.Pool(10)
    print(pool)
不能放在if __name__ == "__main__":代码块中。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-25 09:19:01 | 显示全部楼层
ba21 发表于 2022-10-24 22:21
你就把这段代码,实现一个简单的多进程然后打包测试下,看出不出问题 。

对了

你好,运行出错是在部分电脑中会出现的,win7和大部分台式电脑容易出现
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-25 10:31:23 | 显示全部楼层
南理马德华 发表于 2022-10-25 09:19
你好,运行出错是在部分电脑中会出现的,win7和大部分台式电脑容易出现

你要确认是你c的问题,还是python这块的问题。分开测一下就知道了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-10-25 11:23:47 | 显示全部楼层
ba21 发表于 2022-10-25 10:31
你要确认是你c的问题,还是python这块的问题。分开测一下就知道了。

是python的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-25 11:34:14 | 显示全部楼层


那可能是有些系统所需要的必要文件没有打包到exe包里,导至有些系统不能用

你使用下面代码简化测试没有?
import multiprocessing

pool = multiprocessing.Pool(10)
print(pool)

if __name__ == "__main__":
    multiprocessing.freeze_support()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-25 14:04:06 | 显示全部楼层
ba21 发表于 2022-10-25 11:34
那可能是有些系统所需要的必要文件没有打包到exe包里,导至有些系统不能用

你使用下面代码简化测试 ...

单独使用python运行没有问题,使用C++调用批处理cmd执行报错,提示python已停止工作windows将关闭程序并通知您
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-25 15:23:19 | 显示全部楼层
ba21 发表于 2022-10-25 11:34
那可能是有些系统所需要的必要文件没有打包到exe包里,导至有些系统不能用

你使用下面代码简化测试 ...

方便的话可以加我微信:Keep_aaa9,论坛等级太低无法发送大文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-25 18:16:05 | 显示全部楼层
南理马德华 发表于 2022-10-25 14:04
单独使用python运行没有问题,使用C++调用批处理cmd执行报错,提示python已停止工作windows将关闭程序并 ...

那可能是你c++调过cmd没有管理员权限。很简单你在一台安装版的win上,和一台装机版(一般都是使用administrator管理员登陆的系统)的win上分别运行程序测试下就知道了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-25 23:36:29 | 显示全部楼层
ba21 发表于 2022-10-25 18:16
那可能是你c++调过cmd没有管理员权限。很简单你在一台安装版的win上,和一台装机版(一般都是使用adminis ...

exe是被调用起来了,但是运行到进程池那边崩溃了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-25 23:38:10 | 显示全部楼层
ba21 发表于 2022-10-25 10:31
你要确认是你c的问题,还是python这块的问题。分开测一下就知道了。

python这边 的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 05:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表