Pyinstaller打包python代码

本文参考https://pythonhosted.org/PyInstaller/spec-files.html

1. 安装pyinstaller,通过pip3 install pyinstaller

2. 编写spec文件:
以process_manage工程为例,创建了process_manage.spec文件,前面的文件名可以随意取,后缀必须为spec,具体文件内容如下:
# -*- mode: python -*-


block_cipher = None
a = Analysis(['/home/iot/process_manage/start_process_manage.py'], 
             pathex=['/home/iot/ennis/start_process_manage'], 
             datas=None,
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)
a.binaries = a.binaries + [('librz.so.0','/home/iot/lib/librz.so.0.0.0','BINARY')]
a.binaries = a.binaries + [('libsha1.so','/home/iot/lib/libsha1.so','BINARY')]
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name='start_process_manage',
          debug=False,
          strip=False,
          upx=True,

          console=True )

coll = COLLECT(

             [('proc.json','/home/iot/intf_proxy_svn/common/proc.json','DATA')],

              strip=None,

              upx=True,

              name='common')



['/home/iot/process_manage/start_process_manage.py'],工程的启动文件,绝对路径或spec文件的相对路径都行;
pathex=['/home/iot/ennis/start_process_manage'],编译生成后存放的路径,在此路径下会生成一个dist文件夹,可执行文件在dist文件夹下;
datas=None;工程的附加文件,此工程不需要设为None,但openapi运行的时候会去lib64/python3.3/_import_failed目录下查找import_failed.map文件,所以这里要修改为:datas=[('/usr/lib64/python3.3/_import_failed/import_failed.map','lib64/python3.3/_import_failed')];

a.binaries = a.binaries + [('librz.so.0','/home/iot/lib/librz.so.0.0.0','BINARY')]此处为工程运行依赖的c语言库,当编译过后,运行该执行文件,会提示找不到librz.so.0,在编译环境中找到该库的绝对位置,按照此语句添加,其他依赖库按照同样方式查找添加;

    coll= COLLECT 将配置文件拷贝到创建的目录下;

    其他的设置项不需改动。

3. 在spec文件所在的目录运行pyinstaller prcess_manage.spec(自己编写的spec文件),运行完成后,会在spec配置的pathex目录下生产dist文件,可执行程序就在dist目录下。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值