本博客介绍了在poetry虚拟环境下打包exe的流程,包含两个部分
- 打包的基本流程
- 打包过程中遇到的问题
打包的基本流程
-
copy打包工具到本地,(share:\公用共享\芯片部\乔羽\img_generate\系统部提供的打包exe工具)
-
用poetry搭建虚拟环境
在打包工具的文件夹里(shift+右键)打开powershell
用文件夹中的pyproject.toml配置虚拟环境,在powershell下运行poetry install
注意!这个过程中不能开着网络代理
-
环境copy到打包工具文件夹下
因为我运行完poetry install之后,环境在c盘,但是工具包默认是在当前文件夹下的venv文件夹里,所以我做了copy这步
在打包工具文件夹下新建venv文件夹
poetry的虚拟环境路径:poetry env info
把如下的文件夹copy到env中
-
源代码copy到venv
将所有的源代码都复制到路径:pack_new\venv\gp-cobra-distribution-evk-b41ewfej-py3.8\Lib\site-packages
注意!这里copy源代码的时候只copy内层的,比如源代码的gp_cobra文件夹下还有一个gp_cobra文件夹,copy的时候只要内层的! -
修改打包工具文件夹里的main.spec文件
在下面红框的位置修改打包后的exe文件名
在下面红框的位置根据本地的路径修改
-
修改gp_cobra_distribution_evk_gmax4002文件夹下的__main__.py文件
屏蔽掉红框上面的内容,加载自己修改的类
屏蔽掉红框上面的内容,实例化上面加载的类
-
开始打包
pyinstaller -F main.spec
最后显示success则表示打包成功
打包过程中遇到的问题
-
运行poetry show报错——根据提示运行poetry lock就解决了
-
运行poetry shell报错
-
以管理员身份打开 PowerShell 终端。
-
执行以下命令:
Set-ExecutionPolicy -ScopeCurrentUser -ExecutionPolicy RemoteSigned
该命令会将 PowerShell 执行策略设置为允许在当前用户的上下文中运行本地脚本文件。
-
确认更改。
执行以下命令:Get-ExecutionPolicy-List
该命令将列出当前所有执行策略,包括您刚刚更改的策略。
-
退出并重新打开 PowerShell 终端
重新运行 poetry shell 命令,解决了
-
-
poetry shell无法进入虚拟环境
报错如下
解决方法
-
找不到gp_native_fx3.dll
解决方法
dll文件都在平台代码里,怀疑是打包文件的路径哪里写的不对,暂时是把源代码里的dll copy到env里面了