Pyinstaller打包问题之解决方案汇总
在这里将各种Pyinstaller打包问题的解决方案汇总起来,方便各个小伙伴们解决问题。
目录:
3.对方电脑没有chromedriver.exe导致程序无法启动
4.Pyinstaller打包selenium去除chromedriver带来的黑框
9.打包PyQt5出现No module named 'PyQt5.sip'
1.Pyinstaller与Python版本不兼容
在Pyinstaller官网上的第一段有这么一句话(https://www.pyinstaller.org/):
Pyinstaller兼容Python2.7以及3.3-3.6。我看很多刚入门学习Python的小伙伴都是用Pyinstaller打包Python3.7程序而出错的,所以只需要将Python版本换一下就可以了。
当然不代表以后不兼容3.7,可以随时关注下官网动态。
2. 64位电脑上打包的是无法运行于32位上的
64位系统上打包的只能运行于64位系统,不过32位系统上打包的的可以运行于32位和64位系统。
所以exe放到其他电脑上若无法运行的话可以看一下两台电脑的位数是不是相同(不过跟windows版本是没有什么关系的,win7上打包的也可以在win10上运行)。
3.对方电脑没有chromedriver.exe导致程序无法启动
若你写的程序涉及到chromedriver.exe,请注意Pyinstaller是不会把chromedriver.exe也一起打包进去的。
所以当你把程序放到另外一台电脑上时,如果那台电脑没有chromedriver.exe,那很可能会报类似如下错误:
报错提示就是要将chromedriver.exe放在路径中。
解决办法就是拷贝一份chromedriver.exe到另外一台电脑上,放在和你打包起来的exe相同的路径下就可以了。
4.Pyinstaller打包selenium去除chromedriver带来的黑框
请移步https://blog.csdn.net/La_vie_est_belle/article/details/81252588
5.用Pyinstaller打包Scrapy
请移步https://blog.csdn.net/La_vie_est_belle/article/details/79017358
6.相同的程序自己打包不行,给别人打包就可以
这个程序里可能用到了一些你还没有安装的库,而别人电脑上的Python环境里已经安装了相应的库。
所以你只需要用pip下载相应的库就可以了(一般报错会提示Module Not Found: xxx之类的)。
7.你程序中用到的一些文件(图片,txt)要跟随exe
程序中用到的文件,在打包后要跟随exe,不然程序找不到相关文件,自然就无法运行。
8.打包用到multiprocessing库的程序
请看下方代码注释
import multiprocessing
class SendeventProcess(multiprocessing.Process):
def __init__(self, resultQueue):
self.resultQueue = resultQueue
multiprocessing.Process.__init__(self)
self.start()
def run(self):
print 'SendeventProcess'
self.resultQueue.put((1, 2))
print 'SendeventProcess'
if __name__ == '__main__':
# 当在Windows上打包时,multiprocessing.freeze_support()这行非常必要
# 在Linux和Mac上打包用不着
multiprocessing.freeze_support() #只要在你的程序的入口中加上这行代码加上就可以了
print 'main'
resultQueue = multiprocessing.Queue()
SendeventProcess(resultQueue)
print 'main'
详情参考:https://github.com/pyinstaller/pyinstaller/wiki/Recipe-Multiprocessing
9.打包PyQt5出现No module named 'PyQt5.sip'
请移步:https://blog.csdn.net/La_vie_est_belle/article/details/82346355
目前暂时想到这么多,以后有想到其他的会再补充。可以在下方评论区留言你所遇到的问题,谢谢。
额新建了一个Python交流群,大家感兴趣的话可以加入一起学习:820934083
上一篇: 使用pyinstaller打包python程序为exe却不能执行的解决办法
下一篇: pyinstaller打包错误解决:gensim错误,ImportError: DLL load failed: 找不到指定的模块。
推荐阅读
-
Pyinstaller打包问题之解决方案汇总
-
完美解决pyinstaller因为-w打包的exe文件与os.popen和subprocess.Popen都执行失败的问题
-
MySQL之—使用c3p0与DBCP连接池,造成的MySql 8小时问题的详细代码解决方案
-
DKHadoop开发环境安装常见问题及解决方案汇总
-
php中文乱码问题的终极解决方案汇总
-
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
-
处理pyinstaller打包python程序时VideoCapture()不响应问题
-
pyinstaller打包django项目成exe以及遇到的一些问题
-
IOS 打包出现Missing Push Notification Entitlement 问题解决方案
-
iOS10适配之权限Crash问题的完美解决方案