南理马德华 发表于 2022-10-23 22:58:43

python编译的exe运行出错

求助各位大佬,使用python编译的exe直接点击可以运行,但是使用c++调用就报错。直接运行源码不会报错,使用c++调用cmd执行发现创建进程池语句报错。此问题出现在win7系统,部分电脑会报错。{:10_266:}

jackz007 发表于 2022-10-23 23:11:50

          在低于等于 Python v3.8.10 版本的 Python 环境中打包,因为,如果超过这个版本,打包的 exe 会不支持 Win7。

南理马德华 发表于 2022-10-23 23:31:41

jackz007 发表于 2022-10-23 23:11
在低于等于 Python v3.8.10 版本的 Python 环境中打包,因为,如果超过这个版本,打包的 exe 会 ...

在3.8.2版本中打包的

南理马德华 发表于 2022-10-23 23:36:13

pool = multiprocessing.Pool(n_process)出错语句

ba21 发表于 2022-10-23 23:47:12

参考:
http://www.1118pc.com/show_pdetails.asp?id=1010

hrpzcf 发表于 2022-10-24 01:08:44

报什么错

南理马德华 发表于 2022-10-24 15:13:07

hrpzcf 发表于 2022-10-24 01:08
报什么错

main.exe已停止工作,通过代码调试到启动进程池语句会直接崩溃,windows弹窗提示程序出现问题

南理马德华 发表于 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处理器的电脑上出现

ba21 发表于 2022-10-24 18:01:53

南理马德华 发表于 2022-10-24 15:14
这些都试过了,还是不起作用,进程池函数在主函数中,且主函数首句加了freezing_support(),此报错绘制win ...

你不介意你的代码的话,可以把相关文件打包上来。
说明问题 。
这样不就好解决了?

南理马德华 发表于 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不会上传

ba21 发表于 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__":代码块中。

南理马德华 发表于 2022-10-25 09:19:01

ba21 发表于 2022-10-24 22:21
你就把这段代码,实现一个简单的多进程然后打包测试下,看出不出问题 。

对了


你好,运行出错是在部分电脑中会出现的,win7和大部分台式电脑容易出现

ba21 发表于 2022-10-25 10:31:23

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

你要确认是你c的问题,还是python这块的问题。分开测一下就知道了。

南理马德华 发表于 2022-10-25 11:23:47

ba21 发表于 2022-10-25 10:31
你要确认是你c的问题,还是python这块的问题。分开测一下就知道了。

是python的问题

ba21 发表于 2022-10-25 11:34:14

南理马德华 发表于 2022-10-25 11:23
是python的问题


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

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

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

if __name__ == "__main__":
    multiprocessing.freeze_support()

南理马德华 发表于 2022-10-25 14:04:06

ba21 发表于 2022-10-25 11:34
那可能是有些系统所需要的必要文件没有打包到exe包里,导至有些系统不能用

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

单独使用python运行没有问题,使用C++调用批处理cmd执行报错,提示python已停止工作windows将关闭程序并通知您

南理马德华 发表于 2022-10-25 15:23:19

ba21 发表于 2022-10-25 11:34
那可能是有些系统所需要的必要文件没有打包到exe包里,导至有些系统不能用

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

方便的话可以加我微信:Keep_aaa9,论坛等级太低无法发送大文件

ba21 发表于 2022-10-25 18:16:05

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

那可能是你c++调过cmd没有管理员权限。很简单你在一台安装版的win上,和一台装机版(一般都是使用administrator管理员登陆的系统)的win上分别运行程序测试下就知道了。

南理马德华 发表于 2022-10-25 23:36:29

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

exe是被调用起来了,但是运行到进程池那边崩溃了

南理马德华 发表于 2022-10-25 23:38:10

ba21 发表于 2022-10-25 10:31
你要确认是你c的问题,还是python这块的问题。分开测一下就知道了。

python这边 的问题
页: [1] 2
查看完整版本: python编译的exe运行出错