pyinstaller 打包的程序在另一台电脑上报错并闪退

用pyinstaller 打包了一个程序,里面导入了数据库,并使用了一个已经创建的库。
在另一台没有安装mysql和Python的电脑上试运行,结果报错并闪退。是什么原因呢?

是因为mysql用的是已创建的库的原因吗?

3个回答

不是太明白你的描述,你的程序里除了打包运行代码外,还打包了什么?数据库是不能打包进去的。
不安装python的电脑上是可以运行打包完程序的;
mysql得注意连接串配置,在目的电脑上是否能访问;
另:**可以在命令行里运行一下exe,看有没有报错信息出来**

slevenxulianjie
slevenxulianjie mysql可放在本地,也可放在网内其它主机上。mysql是支持局域网内访问的,连接参数要配对。
5 个月之前 回复
KathyLJQ
KathyLJQ 如果目的电脑上没有装MYSQL,那就得安装下,然后把里面被使用的库和表按原样创建一遍,对吗?
5 个月之前 回复

pyinstaller 在打包可执行程序时是可以添加数据库的,其中打包成一个程序和一个目录是不同的
默认是把库打包进去,所以不管别人有没有安装python都是能正常运行的。我猜你连接数据库用的是绝对路径,要先改成相对路径(本文件夹下)再试试。
如果打包成一个目录,就先用这一指令

pyinstaller [你的其他参数] [你的py文件]


如果打包成一个文件,就有些麻烦

pyi-makespec [你的其他参数] [你的py文件]
然后用记事本打开生成的spec文件,里面有一个datas=[],改成datas=[('[你的资源文件名,和程序放在同一目录下]'),('.')]
最后

pyinstaller [刚才的spec文件]

python打包exe,移植性并没有多好。亲历,pandas以及tkinter,真的每次搞得吐血
另外,闪退就是报错呗,要把错误贴出来哦

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问