pyinstaller打包完整python项目

第一步:进入项目文件夹,pip安装pipenv

cd 项目文件夹
pip install pipenv

第二步:创建虚拟环境自动安装依赖--进入虚拟环境--查看依赖

此步骤建议使用shell执行。

pipenv install

第三步:进入虚拟环境

这一步非常重要,如果没有进入,那打包后运行会各种报错,原因就是没有把虚拟环境中模块打包进去,模块缺失。

pipenv shell

第四步:升级pip,用pip安装pyinstaller

python -m pip install --upgrade pip
pip install pyinstaller

第五步:用pip安装pipenv安装不了的模块或者pipenv安装后会造成打包出错的那些模块到虚拟环境,如下面的这些模块:

pip install pypiwin32
pip install -i https://mirrors.tencent.com/pypi/simple/ --upgrade tencentcloud-sdk-python

第六步:确认所有模块都安装好了

pipenv graph

第七步:生成spec文件

我们在这一步添加各种参数,如 -D -c  --version-file=file_version_info.txt 这些,生成spec文件:

pyi-makespec -D -c --version-file=file_version_info.txt --icon=ico.ico weijian.py

 file_version_info.txt是一个文本文件,需要放在和启动入口相同目录下,会根据这个文件生成版本信息,该文件说明见下: 

# UTF-8
VSVersionInfo(
  ffi=FixedFileInfo(
#filevers和prodvers应该始终是包含四个项的元组:(1、2、3、4),将不需要的项设置为0
filevers=(21, 10, 27, 0),  # 文件版本******,鼠标悬浮exe会显示,也显示在 详细信息-文件版本,这个是检测版本的依据
prodvers=(4, 6, 9, 4), # 生产商,未见显示在哪里
mask=0x3f, # 两个位掩码
flags=0x0,
OS=0x4, # 为其设计此文件的操作系统,0x4-NT,无需更改它
fileType=0x1, # 文件的常规类型,0x1-该文件是一个应用程序
subtype=0x0, # 文件的功能,0x0表示该文件类型未定义
date=(0, 0) # 创建日期和时间戳
),
  kids=[
StringFileInfo(
  [
  StringTable(
    u'040904B0',
    [StringStruct(u'CompanyName', u'云鲸信息'), # 鼠标悬浮exe会显示
    StringStruct(u'FileDescription', u'PC疫情防控自动化工具'),    # 文件说明,鼠标悬浮exe会显示,也会显示在 详细信息-文件说明
    StringStruct(u'FileVersion', u'1.0.0'), # 没见哪里显示
    StringStruct(u'InternalName', u'SVN'),
    StringStruct(u'LegalCopyright', u'云鲸信息版权所有'), #版权,会显示在 详细信息-版权
    StringStruct(u'OriginalFilename', u'小小机器人'), #原始文件名,会显示在 详细信息-原始文件名
    StringStruct(u'ProductName', u'机器人'),      #产品名称,会显示在 详细信息-产品名称
    StringStruct(u'ProductVersion', u'1.1.0')])    #产品版本,会显示在 详细信息-产品版本
  ]),
VarFileInfo([VarStruct(u'Translation', [2052, 1200])]) # 语言,中文简体
  ]
)

第八步:修改spec文件,添加找不到的dll、添加图片等静态资源、修改项目名、exe名等

第九步:根据编辑后的spec打包exe

之前没有版本信息的时候,我把-D参数放到这一步没问题,添加 --version-file=file_version_info.txt版本信息后,就会报错找不到版本信息的txt文件,把-D参数放到第七步就好了

pyinstaller weijian.spec

至此,一个pipenv管理的项目打包完毕

 以上即为所有生成的文件了,有想了解build和dist都为什么作用的文件的同仁请看我的这篇博文:Selenium自动化脚本打包exe文件_kylinmin的博客-CSDN博客。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用pyinstaller打包python项目的步骤如下: 第一步:生成spec文件 可以使用命令pyi-makespec来生成一个.spec文件。在命令行中切换到项目所在的目录,然后运行以下命令: ``` pyi-makespec your_script.py ``` 这将生成一个.spec文件,你可以在其中配置打包的选项。 第二步:修改spec文件 打开生成的.spec文件,你可以按需修改其中的选项,比如添加额外的文件、指定打包后的可执行文件名称等。 第三步:运行pyinstaller命令进行打包 在命令行中运行以下命令来打包你的项目: ``` pyinstaller your_script.spec ``` 这将使用.spec文件中的配置选项来进行打包打包完成后,在dist目录下会生成可执行文件。 请注意,如果你的项目涉及到多目录多文件,需要在.spec文件中将所有相关的py文件输入到Analysis类中的pathex参数中,以确保打包能够正确包含所有文件。 希望以上步骤对你有所帮助。123 #### 引用[.reference_title] - *1* *2* [使用pyinstaller打包python工程项目文件](https://blog.csdn.net/weixin_42521185/article/details/127583287)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *3* [python项目使用pyinstaller打包](https://blog.csdn.net/weixin_42550871/article/details/128024408)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值