Python 使用 pyinstaller 打包成 exe/app 文件,并支持传入外部参

简介: Python 使用 pyinstaller 打包成 exe/app 文件,并支持传入外部参
import sys
import os
# 路径操作对象
print(os.path)
# 返回当前脚本的路径
print(sys.executable)
# 返回当前脚本的绝对路径
print(os.path.realpath(sys.executable))
# 去掉文件名,返回当前脚本的目录(也可以理解从里到外,去掉一层)
print(os.path.dirname(os.path.realpath(sys.executable)))
# 也可以嵌套多去掉几层,直到想要的文件夹即可
print(os.path.dirname(os.path.dirname(os.path.realpath(sys.executable))))
# 举例
# path = os.path.dirname(os.path.dirname(os.path.realpath(sys.executable)))
# filePath = path + '/' + 'config.json'
# 注意 mac、win 路径中的斜杠问题,可以使用转义符 '\\' '\/'
  • 下面两种传参方式,打包后调用:
# mac 可执行文件也一样传,win 暂时没测试过,后续补上
$ main 1 2 3
# 但是打包的 mac 软件 不可以这么传,要么 gui 导入,要么内部写死一个路径读取(例如:网页)
  • sys 方式:
import sys
import json
# 解析参数
in_filepath = sys.argv[1]  # 参数 1
# out_style = sys.argv[2]    # 参数 2
# out_filepath = sys.argv[3] # 参数 3
print("--input_filepath:",in_filepath)
# print("--output_file_style",out_style)
# print("--output_filepath",out_filepath)
# 解析 json 文件
# obj = json.load(open('./test.json', 'r', encoding="utf-8"))
# 解析动态路径
obj = json.load(open(in_filepath, 'r', encoding="utf-8"))
# 输出使用
print(obj, obj[0])
  • 调用方式:
# 传入方式
$ python test.py ./test.json
# 多个则 空格 分隔开
$ python test.py 1 2 3
  • argparse 方式:
# 导入库
import argparse
# 1. 定义命令行解析器对象
parser = argparse.ArgumentParser(description='Demo 参数介绍')
# 2. 添加命令行参数(--xxx 为固定写法)
parser.add_argument('--name', type=str, help='名称必须传字符串')
parser.add_argument('--age', type=int, default=20, help='年龄必须传 int,默认 20 岁')
# 3. 从命令行中结构化解析参数
args = parser.parse_args()
print('输出参数集合:', args)
epochs = args.name
batch = args.age
print('单个输出 {} {}'.format(epochs, batch))
  • 调用方式:
# 传入方式,必须带上 key,得 key value 的形式传入
$ python test.py --name dzm
# 多个则一直 key value 的方式往后拼接
$ python test.py --name dzm --age 30
# 怎么知道传参有哪些
$ python test.py -h
# 会输出描述
usage: dzm.py [-h] [--name NAME] [--age AGE]
Demo 参数介绍
options:
  -h, --help   show this help message and exit
  --name NAME  名称必须传字符串
  --age AGE    年龄必须传 int,默认 20 岁
相关文章
|
4月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
1295 2
|
3月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
|
4月前
|
API 语音技术 开发者
Python 项目打包,并上传到 PyPI,分享项目
本文介绍了如何使用 Poetry 打包并发布一个 Python 项目至 PyPI。内容包括:项目创建、配置 `pyproject.toml` 文件、构建软件包、上传至 PyPI、安装与使用。通过实例 iGTTS 展示了从开发到发布的完整流程,帮助开发者快速分享自己的 Python 工具。
|
5月前
|
数据采集 数据可视化 API
驱动业务决策:基于Python的App用户行为分析与可视化方案
驱动业务决策:基于Python的App用户行为分析与可视化方案
|
5月前
|
缓存 数据可视化 Linux
Python文件/目录比较实战:排除特定类型的实用技巧
本文通过四个实战案例,详解如何使用Python比较目录差异并灵活排除特定文件,涵盖基础比较、大文件处理、跨平台适配与可视化报告生成,助力开发者高效完成目录同步与数据校验任务。
198 0
|
3月前
|
缓存 移动开发 JavaScript
如何优化UniApp开发的App的启动速度?
如何优化UniApp开发的App的启动速度?
724 139
|
3月前
|
移动开发 JavaScript weex
UniApp开发的App在启动速度方面有哪些优势和劣势?
UniApp开发的App在启动速度方面有哪些优势和劣势?
393 137
|
3月前
|
数据采集 JavaScript 前端开发
开发比分App?你缺的不是程序员
开发体育比分App,关键不在代码,而在懂体育、懂数据、懂用户。明确定位、理清需求、选好数据源,再找专业的产品、数据与技术人才协同,才能少走弯路。程序员最后入场,效率最高。
252 154
|
4月前
|
移动开发 小程序 Android开发
基于 uni-app 开发的废品回收类多端应用功能与界面说明
本文将对一款基于 uni-app 开发的废品回收类多端应用,从多端支持范围、核心功能模块及部分界面展示进行客观说明,相关资源信息也将一并呈现。
182 0

热门文章

最新文章

推荐镜像

更多