提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论
Python程序的运行必须安装有Python环境,而用户的个人电脑上又不可能安装Python运行环境,因此就要将Python 程序打包为可执行文件,就可以直接运行该程序。
argparse是Python内置的一个用于命令项选项与参数解析的模块,在程序中定义好需要的参数,通过sys.argv将参数解析出来,并自动生成帮助和使用信息。
示例1:采用argparse从命令行获取用户信息。
import argparse
# 模块使用主要分三部分:
# - 创建ArgumentParser()对象
# - 调用add_argument()方法添加参数
# - 使用parse_args()解析添加的参数
def main():
parser = argparse.ArgumentParser(description="example of argparse")
parser.add_argument('-n', '--name', default=' Li ')
parser.add_argument('-a', '--age', default='20')
parser.add_argument('-g', '--gender', default='male')
args = parser.parse_args()
print(args)
name = args.name
age = args.age
gender = args.gender
print('name:{},age:{},gender:{}'.format(name, age,gender))
if __name__ == '__main__':
main()
sys.argv用于python文件运行时获取命令行参数,以list形式存储,其中sys.argv[0]表示代码本身文件路径。
# sys.argv从命令行获取py文件的绝对路径
import sys
file_path = sys.argv[0]
print(file_path)
示例2:采用sys.argv从命令行获取用户信息。
import sys
name = sys.argv[1]
age = sys.argv[2]
gender = sys.argv[3]
print(name)
print(age)
print(gender)
import sys
print(sys.argv[1:])
创建一个纯净的、没有多余的第三方库和模块的小型Python环境,尽可能的少的库和模块要来打包exe可执行文件。
# name 环境名、3.x Python的版本
conda create -n name python==3.x
# 查看安装环境目录
conda env list
# 激活新环境,environment_name 环境名
activate environment_name
# package_name 所需其他包名
# -i https://pypi.tuna.tsinghua.edu.cn/simple 镜像源的地址
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name
# 下载安装Pyinstaller模块
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Pyinstaller
我们以argparse的用法的示例1作为示例新建XXX.py。
# 切换命令行的路径,file_path 文件绝对路径
cd file_path
# 只生成一个单个文件(只有一个exe文件)
Pyinstaller -F XXX.py
在当前路径新生成三个文件(build 文件夹、dist 文件夹和 spec文件)。
exe文件在dist文件夹里面。打包完之后,spec文件和 build 文件夹就可以删除了。
执行exe文件:
与Windows流程大同小异
# name 环境名、3.x Python的版本
conda create -n name python==3.x
# 查看安装环境目录
conda env list
# 激活新环境,environment_name 环境名
source activate environment_name
# package_name 所需其他包名
# -i https://pypi.tuna.tsinghua.edu.cn/simple 镜像源的地址
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name
# 下载安装Pyinstaller模块
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Pyinstaller
我们以argparse的用法的示例1作为示例新建XXX.py。
# 切换命令行的路径,file_path 文件绝对路径
cd file_path
# 只生成一个单个文件(只有一个可执行文件)
pyinstaller -F XXX.py
# 注意linux(ubuntu)下pyinstaller是全小写,否则报command not found的错误
在当前路径新生成三个文件(build 文件夹、dist 文件夹和 spec文件)。
可执行文件在dist文件夹里面。打包完之后,spec文件和 build 文件夹就可以删除了。
执行可执行文件:
与其他的打包模块相比,使用Python的Pyinstaller模块进行打包的使用者最多,用起来简便,因此本文以 Pyinstaller模块来打包Python程序为大家提供一个入门参考。