日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

pyinstaller打包TVM/RPC相关脚本及DSO文件

發布時間:2023/10/11 综合教程 82 老码农
生活随笔 收集整理的這篇文章主要介紹了 pyinstaller打包TVM/RPC相关脚本及DSO文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0. 創建anaconda env

numpy中MKL/BLAS庫占用很大空間。使用如下命令創建新環境,并替換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依賴文件的處理方法

總結

以上是生活随笔為你收集整理的pyinstaller打包TVM/RPC相关脚本及DSO文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。