pyinstaller打包TVM/RPC相关脚本及DSO文件
生活随笔
收集整理的這篇文章主要介紹了
pyinstaller打包TVM/RPC相关脚本及DSO文件
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
0. 創(chuàng)建anaconda env
numpy中MKL/BLAS庫占用很大空間。使用如下命令創(chuàng)建新環(huán)境,并替換numpy。
conda create -n extranumpy python=3.8.12
conda activate extranumpy
conda install -c conda-forge numpy
pip install pyinstaller
1. 測試用python腳本
#! /usr/bin/python3.6
# -*- coding:utf-8 -*-
# test_py.py
import tvm
import sys
import tvm.rpc
print('test_py.py will run...')
ip_addr, ip_port = sys.argv[1].split(':')
remote = tvm.rpc.connect(ip_addr, int(ip_port))
add_func = remote.get_function('rpc.test_add')
print(add_func(10, 20))
2. 待打包的文件
- test_py.py
- libtvm_runtime.so
- tvm: init.py _ffi contrib parser rpc runtime support.py error.py
其中,tvm文件夾中的python腳本刪除不需要的子目錄,只保留如上所示依賴項。
3. 修改spec文件
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['test_py.py'],
pathex=['/data/huangxiaofeng/work/vsext_example/py_package'],
binaries=[('libtvm_runtime.so', '.')],
datas=[],
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,
a.binaries,
a.zipfiles,
a.datas,
[],
name='test_py',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False,
disable_windowed_traceback=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None )
說明:由于依賴于libtvm_runtime.so,故將該so文件放置在python測試腳本同一級目錄,這樣運行時就可以找到并加載該so文件。
進一步參考:使用pyinstaller將圖片,文件等打包到exe依賴文件的處理方法
總結(jié)
以上是生活随笔為你收集整理的pyinstaller打包TVM/RPC相关脚本及DSO文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大闸蟹的项目分析——CSDN APP
- 下一篇: 【小技巧】Windows 小技巧