热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pyinstaller打包教程及问题处理:pyinstaller打包技巧

本文主要介绍关于python,numpy,开发语言的知识点,对【pyinstaller打包教程及问题处理】和【pyinstaller打包技巧】有兴趣的朋友可以看下由【山顶一松柏】投稿的技术文章,希望该

本文主要介绍关于python,numpy,开发语言的知识点,对【pyinstaller打包教程及问题处理】和【pyinstaller打包技巧】有兴趣的朋友可以看下由【山顶一松柏】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的python相关技术问题。

pyinstaller打包技巧

exe打包

注意:

虚拟环境依赖包(打包成requirements.txt):

pip install -r requirements.txt

 安装项目依赖 pip install requirements.txt

环境准备 安装虚拟环境

pip install pyinstaller

pyinstaller -F xxxxxxx.py

生成xx.exe

Requirements.txt:

altgraph==0.17.2
future==0.18.2
pefile==2022.5.30
pyinstaller==5.2
pyinstaller-hooks-cOntrib==2022.8
pywin32-ctypes==0.2.0

打包

3.1多文件打包

调试,在终端输入app.exe回车,可以看到报错(不是双击运行) 

 

3.2单文件打包

pyinstaller -F xxxxxxx.py

 

 

3.2.1打包的名称:

pyinstaller -F app.py -n bb

3.3 路径问题

3.3.1 多文件打包,不会报错

3.3.2 单文件打包,报错

为什么报错呢?

运行单文件打包的,会解压到电脑的临时目录(具体报错如下)

 

3.3.1 sys.argv (当前文件执行所在目录文件)

import sys


print(sys.argv)
print(sys.argv[0])

执行返回:

['C:/Users/DELL/PycharmProjects/pyinstaller-g/demo.py']

C:/Users/DELL/PycharmProjects/pyinstaller-g/demo.py

执行文件(只有文件):

 

import sys,os

#找到真正的路径
print(os.path.realpath(sys.argv[0]))


print(sys.argv)

运行:

 

区别如下:

 

import time,os,sys
# BASE_DIR =os.path.dirname(os.path.abspath(__file__))
BASE_DIR = os.path.dirname(os.path.realpath(sys.argv[0]))
print(BASE_DIR)
print("环境使用xxxx系统")
path = os.path.join(BASE_DIR,"account.txt")
with open(path,"r",encoding="utf-8") as file:
    data = file.read().strip()
print(data)



time.sleep(5)

3.4 模块导入问题

满足要求

但是,如何遇到动态导入模块的代码,他是无法找到关联包

import time,sys
import importlib

print("=================欢迎使用xxx系统===================")


card = importlib.import_module("utils.card")
v1 = card.get_number()
print(v1)
time.sleep(5)

动态导入报错:

 

手动写入要导入的包(在bb.spec文件里)

 

打包命令:

报错:

-F要去掉

 

pyinstaller  bb.spec(原来的打包命令会把spec文件给覆盖掉,)

 

运行成功

 

本文《pyinstaller打包教程及问题处理》版权归山顶一松柏所有,引用pyinstaller打包教程及问题处理需遵循CC 4.0 BY-SA版权协议。


推荐阅读
author-avatar
email_osoo_240
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有