用pyinstaller 打包了一个程序,里面导入了数据库,并使用了一个已经创建的库。
在另一台没有安装mysql和Python的电脑上试运行,结果报错并闪退。是什么原因呢?
是因为mysql用的是已创建的库的原因吗?
不是太明白你的描述,你的程序里除了打包运行代码外,还打包了什么?数据库是不能打包进去的。
不安装python的电脑上是可以运行打包完程序的;
mysql得注意连接串配置,在目的电脑上是否能访问;
另:**可以在命令行里运行一下exe,看有没有报错信息出来**
pyinstaller 在打包可执行程序时是可以添加数据库的,其中打包成一个程序和一个目录是不同的
默认是把库打包进去,所以不管别人有没有安装python都是能正常运行的。我猜你连接数据库用的是绝对路径,要先改成相对路径(本文件夹下)再试试。
如果打包成一个目录,就先用这一指令pyinstaller [你的其他参数] [你的py文件]
如果打包成一个文件,就有些麻烦pyi-makespec [你的其他参数] [你的py文件]
然后用记事本打开生成的spec文件,里面有一个datas=[]
,改成datas=[('[你的资源文件名,和程序放在同一目录下]'),('.')]
最后pyinstaller [刚才的spec文件]
python打包exe,移植性并没有多好。亲历,pandas以及tkinter,真的每次搞得吐血
另外,闪退就是报错呗,要把错误贴出来哦