python打包文件一闪而过(29.Python程序打包成可执行文件)

Python作为一门编程语言,因为入门简单上手快,加上人工智能深度学习各种框架对Python语言的支持,所以受到很多人的欢迎,下面我们就来聊聊关于python打包文件一闪而过?接下来我们就一起去了解一下吧!

python打包文件一闪而过(29.Python程序打包成可执行文件)

python打包文件一闪而过

Python作为一门编程语言,因为入门简单上手快,加上人工智能深度学习各种框架对Python语言的支持,所以受到很多人的欢迎。

还有一个重要的原因,就是Python有大量第三方库支持,也就是大家在做程序的时候,不再重复造轮子,对于大部分人来说是非常方便快捷。

但是Python相比其他语言也有一些缺点,因为它是解释型语言,所以在运行的速度上相对编译型的语言运行速度会慢一些。对于不追求速度,只需要完成功能的人来说。选择Python是一个不错的选择。

有时我们用Python写好了一个程序,运行时好好的,但要把Python的程序打包成可执行文件,在其他环境上运行,就有些麻烦。因为我们要把Python运行的各种依赖库打包在一起,才能独立运行。而且每一次打包的程序遇到的问题都是各种各样的,出错误的信息让人看得一头的雾水。

下面说一下Python程序打包成可执行文件遇到了一些问题,这里打包用的是pyinstaller第三方库。

pyinstaller的安装和基本用法这里就不再讲,讲一下打包后出错及解决方法,

测试环境:python==3.7.4

一、缺少打包文件。有时候我们用打包的时候。有些文件不能自动打包进去的,但程序运行又是必须依赖的。

这时我们就必须手动添加需要的文件到myapp.spec文件中的datas=[ ]

例子:这两个库文件需要打包放在一起

D:\\MyPython\\myapp\\libs\libblas.dll'

D:\\MyPython\\myapp\\libs\warpctc.dll

修改myapp.spec文件中:debug和console项,方便查看出错信息

debug=True

console=True

# -*- mode: python ; coding: utf-8 -*- block_cipher = None a = Analysis(['myapp.py'], pathex=['D:\\MyPython\\myapp'], binaries=[], datas=[ ('D:\\MyPython\\myapp\\libs\libblas.dll','.'), ('D:\\MyPython\\myapp\\libs\warpctc.dll','.') ], hiddenimports=[], hookspath=[], hooksconfig={}, runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE(pyz, a.scripts, [], exclude_binaries=True, name='myapp', debug=True, bootloader_ignore_signals=False, strip=False, upx=True, console=True, disable_windowed_traceback=False, target_arch=None, codesign_identity=None, entitlements_file=None , icon='logo.ico') coll = COLLECT(exe, a.binaries, a.zipfiles, a.datas, strip=False, upx=True, upx_exclude=[], name='myapp')

二、版本引起的问题,降低到合适版本

1、pandas打包提示出错,安装低版本

pip install pandas==1.0.3

2、pyinstaller版本

pip install pyinstaller==4.4

3、setuptools版本

pip install setuptools==53.0.0

三、第三库本身的问题

这种问题很难发现,一般找到原因后,直接屏蔽修改文件的代码。

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页