pyinstaller打包与cxfreeze打包的区别与否支持

 

pyinstaller与cxfreeze打包支持的模块问题
案例 pyinstaller打包 cxfreeze打包  
self.html=   os.path.realpath(__file__) 有问题,获取的是执行的路径

有问题,不识别__file__,

使用sys.argv[0]代替__file__ 打包没有任何问题

获取脚本的当前路径。不打包该命令没有问题

urllib.request.urlopen(self.address).read()

在多线程获取多个地址时,会有很多地址获取不到数据。在不打包时没有任何问题。 无问题,打包状态下也可以正常访问数据 获取http的请求,返回数据  
exit(0) 打包使用有问题,不识别 打包使用有问题,不识别 单线程的正常退出,不打包时可以正常使用。一般不使用,用sys.exit()代替
sys.exit() 无问题 无问题 单线程正常退出。os._exit()即使在某个线程中使用,也会把整个程序停止退出
       
       
       
       
       


   关于线程的退出

当一个线程完成函数的执行时,它就会退出。另外,还可以通过调用诸如 thread.exit()之
类的退出函数,或者 sys.exit()之类的退出 Python 进程的标准方法,亦或者抛出 SystemExit
异常,来使线程退出。不过,你不能直接“终止”一个线程。
使用抛出SystemExit异常来退出

# python3
Python 3.7.3 (default, Mar 27 2019, 22:11:17) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> raise SystemExit
#退出

 

                                                                                                                                                                                                                                                                                                                                                                                     

 

你可能感兴趣的:(python,pyinstaller,cxfreeze)