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文件的更多相关文章

  1. win7 32位用pyinstaller打包Python和相关html文件 成exe

    http://tieba.baidu.com/p/3060401749?traceid= 安装 pyinstaller 然后 第一步你的脚本里面要做相应处理,添加一个函数:def resource_p ...

  2. 使用pyinstaller打包Python应用,生成EXE执行文件

    在命令行中切换到要打包的程序所在目录,或者在程序目录打开命令行,直接输入下面的指令即可pyinstaller -F xxx.py pyinstaller -F -w -i manage.ico app ...

  3. python3使用pyinstaller打包apscheduler出的错

    本来只是想用Python做一个定时任务小工具在服务器上运行,可是服务器在隔离区,各种禁止上外网,使用pip导出列表那种下载库的方法不管用,导致Python的各种库都下不到,官网离线下载又各种缺依赖,好 ...

  4. pyinstaller 打包生成exe之后运行提示‘no module name 'xxx'’错误

    python 3.7 pyinstaller 3.4 具体情况: pycharm中点击运行可成功执行,生成正确结果,没有报错. 双击run.py(程序运行的主文件),运行,可生成正确结果,没有报错. ...

  5. pyinstaller打包py脚本Warning:lib not found等相关问题

    小爬从使用Pyinstaller打包py为exe文件以来,一直都会碰到Warning:lib not found等相关问题,诸如: 虽然大多数时候,您像我一样忽略这些warning,打包后的exe也能 ...

  6. PyInstaller打包python脚本的一些心得

    PyInstaller打包python脚本的一些心得 因为在公司经常要帮同事做一个从excel表格中提取出需要的内容的重复工作,比较繁琐还容易出错:于是就想着要写个程序,但是同事又不可能在电脑上也装上 ...

  7. PyInstaller打包Python脚本为exe

    1.PyInstaller-3.1.1  百度云链接  http://pan.baidu.com/s/1jHYWin8 密码  oapl 2.安装最新版本的 pywin32-217.win32-py2 ...

  8. (转!)Pyinstaller 打包发布经验总结

    原文地址 https://blog.csdn.net/weixin_42052836/article/details/82315118 具体的实现图待本人实现后贴上 原 Pyinstaller 打包发 ...

  9. pyinstaller打包pyqt文件(转)

    pyinstaller打包pyqt文件  https://www.cnblogs.com/dcb3688/p/4211390.html   打包pyqt文件 如何将pyqt生成exe的二进制文件呢,p ...

  10. 安装PyInstaller打包python

    安装PyInstaller 对于那些网络比较稳定,能够流畅使用pip源地址的用户,直接下面的命令就可以搞定: pip install pyinstaller 通常我们会下载源码包,然后进入包目录,执行 ...

随机推荐

  1. swagger访问url

    http://172.16.5.130:8080/swagger-ui.html 上面的ip:port 根据实际情况调换 如果设置了server.servlet.context-path 比如: se ...

  2. Java 9.回文数

    给你一个整数 x ,如果 x 是一个回文整数,返回 true :否则,返回 false .回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数.    例如,121 是回文,而 123 不是. ...

  3. ES配置生成SSL使用的证书

    cd /usr/local/elasticsearch/bin/ ./elasticsearch-certgen ##################################### Pleas ...

  4. Traefik知识点

    Traefik 的各种 Providers Traefik 中的配置发现是通过下面的一些 providers 来实现的. providers 是现有的一些基础架构组件,可以是编排工具,容器引擎,云提供 ...

  5. CentOS6 配置阿里云 NTP 服务

    本文以Centos 6.5为例介绍如何修改Linux实例时区,以及开启和配置Linux NTP服务,保证实例本地时间精确同步. 前提条件 NTP服务的通信端口为UDP 123,设置NTP服务之前请确保 ...

  6. electron 基础

    electron 基础 前文我们快速的用了一下 electron.本篇将进一步介绍其基础知识点,例如:生命周期.主进程和渲染进程通信.contextBridge.预加载(禁用node集成).优雅的显示 ...

  7. csv->html

    seg1=''' <!DOCTYPE HTML>\n<html>\n<body>\n<meta charset=gb> <h2 align=cen ...

  8. PAT (Basic Level) Practice 1032 挖掘机技术哪家强 分数 20

    为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第 1 行给出不超过 105 的正整数 N,即参赛人数.随后 N  ...

  9. 常用排序算法(C语言)

    1.冒泡排序 void BubbleSort(int a[],int len) {int tmp; for (int i=0; i<n-1; i++) { int flag = FALSE; f ...

  10. Codeforces Round #816 (Div. 2)/CodeForces1715

    CodeForces1715 Crossmarket 解析: 题目大意 有一个 \(n \times m\) 的空间,Stanley 需要从左上角到右下角:Megan 则需要从左下角到右上角.两人可以 ...