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

  • Post author:
  • Post category:其他


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
#退出



版权声明:本文为bck1453925668原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。