> 文章列表 > 在poetry虚拟环境下打包exe

在poetry虚拟环境下打包exe

在poetry虚拟环境下打包exe

本博客介绍了在poetry虚拟环境下打包exe的流程,包含两个部分

  • 打包的基本流程
  • 打包过程中遇到的问题

打包的基本流程

  • copy打包工具到本地,(share:\\公用共享\\芯片部\\乔羽\\img_generate\\系统部提供的打包exe工具)

  • 用poetry搭建虚拟环境
    在打包工具的文件夹里(shift+右键)打开powershell
    用文件夹中的pyproject.toml配置虚拟环境,在powershell下运行

    poetry install
    

    注意!这个过程中不能开着网络代理

  • 环境copy到打包工具文件夹下
    因为我运行完poetry install之后,环境在c盘,但是工具包默认是在当前文件夹下的venv文件夹里,所以我做了copy这步
    在打包工具文件夹下新建venv文件夹
    在poetry虚拟环境下打包exe
    poetry的虚拟环境路径:

    poetry env info
    

    把如下的文件夹copy到env中
    在poetry虚拟环境下打包exe

  • 源代码copy到venv
    将所有的源代码都复制到路径:pack_new\\venv\\gp-cobra-distribution-evk-b41ewfej-py3.8\\Lib\\site-packages
    在poetry虚拟环境下打包exe
    注意!这里copy源代码的时候只copy内层的,比如源代码的gp_cobra文件夹下还有一个gp_cobra文件夹,copy的时候只要内层的!

  • 修改打包工具文件夹里的main.spec文件
    在下面红框的位置修改打包后的exe文件名
    在poetry虚拟环境下打包exe
    在下面红框的位置根据本地的路径修改
    在poetry虚拟环境下打包exe

  • 修改gp_cobra_distribution_evk_gmax4002文件夹下的__main__.py文件
    屏蔽掉红框上面的内容,加载自己修改的类
    在poetry虚拟环境下打包exe
    屏蔽掉红框上面的内容,实例化上面加载的类
    在poetry虚拟环境下打包exe

  • 开始打包

    pyinstaller -F main.spec
    

最后显示success则表示打包成功

打包过程中遇到的问题

  • 运行poetry show报错——根据提示运行poetry lock就解决了
    在poetry虚拟环境下打包exe

  • 运行poetry shell报错

    1. 以管理员身份打开 PowerShell 终端。

    2. 执行以下命令:

      Set-ExecutionPolicy -ScopeCurrentUser -ExecutionPolicy RemoteSigned 
      

      该命令会将 PowerShell 执行策略设置为允许在当前用户的上下文中运行本地脚本文件。

    3. 确认更改。
      执行以下命令:

      Get-ExecutionPolicy-List
      

      该命令将列出当前所有执行策略,包括您刚刚更改的策略。

    4. 退出并重新打开 PowerShell 终端
      重新运行 poetry shell 命令,解决了

  • poetry shell无法进入虚拟环境
    报错如下
    在poetry虚拟环境下打包exe
    解决方法
    在poetry虚拟环境下打包exe

  • 找不到gp_native_fx3.dll
    在poetry虚拟环境下打包exe解决方法
    dll文件都在平台代码里,怀疑是打包文件的路径哪里写的不对,暂时是把源代码里的dll copy到env里面了