关于pyinstaller打包(pytorch, torchvision, opencv-python)

        由于最近的工作的需要,现在特意记录一下。这个部分也是折腾了我一点时间,在网络上也是找寻各种问题的解决方案,话不多说,直接上干货。

        由于想要打包的是含有各种模块的python文件,所以在这里在anaconda中先创建一个虚拟的环境。

        1. 打开Anaconda Prompt,输入conda create -n your_env_name python=X.X

             我自己的这里是输入conda create -n classification python=3.7

             然后,激活这个环境,在创建好之后会有这部分的提示,复制粘贴+回车即可。

                conda activate classification

        2. 将需要打包的项目复制在这个文件夹中,路径在安装的Anaconda中的envs中。

        3. 配置运行的环境,现在环境中只有python的一些基本模块,所以需要先运行一下。

            这个时候就会各种提示,没有各种各样的module。

            这个时候既可以选择离线安装,也可以选择在线安装。

            我这里是选择离线安装

            torch、torchvisionhttps://download.pytorch.org/whl/torch_stable.html

            我自己这里下载的是cpu版本,cuda版本还没搞明白,明白了的话,再更新。

            根据自身的需要,下载相应的版本。pip离线安装即可

            这里需要注意的是,不同的版本也会出现各种各样的问题。

            接下来,还会缺少其他的模块。

            在PyPI · The Python Package Index里面搜索相应的版本下载并离线安装即可。

            直到可以在虚拟环境中可以运行需要打包的文件。

            ## $$ && 多几个符号引起注意,原本的训练模型需要用到gpu训练,所以所有的tensor都是cuda。在这里,我就一个一个更换过来,改成了cpu的。 

        4. 然后,就可以安装pyinstaller. 离线也可,在线也行。文件都是比较小的,速度会很快。

        5. 接下来就要开始惊心动魄的打包环节,cd 到需要打包的文件夹中,输入

                        pyinstaller -F eval.py  回车就行

            在这里,因为我要运行的程序是eval.py,你们自己的就换成自己文件的名字就好。

            这里,我们可以发现,项目里多了三个文件

                dist文件夹、build文件夹、eval.spec文件(这里是相对于我来说的)

        6. 接下来,在cmd窗口中拖入dist里面的exe文件,敲回车键。

                        同时双击也可,但是窗口会一闪而过。然后,幺蛾子就出现了。

            (i)  ImportError: numpy.core.multiarray failed to import

                   这个问题网络上有好多解决方案,我自己好用就是

                        在出现问题的py文件中输入以下代码

import numpy
import numpy.core._dtype_ctypes

            (ii) 这个错误我比较抓狂,网上搜了各种方法,都不行。

 

                后来一个一个文件看,发现问题出在models\vision\detection\_utils.py的第74行

                @torch.jit.script,这个部分我注释掉了。然后exe文件就可以成功运行了。

                我打包了两个不同的python文件,都是需要将文件中的@torch.jit.script

# @torch.jit.script

        7. 最后,里面如果出现了各种错误的话。有一定概率是module的版本不对。

            我这里遇到的就是pyinstaller和opencv-python的版本不对的情况。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Pyinstaller是一个可以将Python脚本打包成可执行文件的工具,其主要功能是将Python程序自动转换为独立且可执行的二进制文件。使用Pyinstaller打包可以实现在没有Python环境的计算机上执行Python程序的目的。 Pyinstaller的使用相对简单,只需在命令行输入打包命令即可,同时还可以为打包程序添加各种参数,比如生成单个可执行文件,优化程序运行速度等。 使用Pyinstaller的步骤大致分为如下几个: 1. 安装Pyinstaller:可以使用pip等命令行工具进行安装,安装完成后即可使用。 2. 编写Python程序:编写好Python程序后,使用Pyinstaller打包命令即可将程序打包。 3. 打包程序:可以使用命令行进行打包操作,也可以使用Pyinstaller提供的GUI界面来完成打包操作,打包完成后即可在dist目录下找到生成的可执行文件。 4. 配置打包参数:根据需要,可以对打包参数进行调整,比如设置生成的可执行文件名称、添加支持的文件类型等。 总的来说,Pyinstaller打包是一个非常方便的工具,可以让Python程序更方便地在其他计算机中运行,也可以更好地保护程序的源代码,使其不易被别人窃取。 ### 回答2: PyInstaller是一个很好用的Python打包工具,可以将Python代码打包成一个独立的可执行文件,方便程序的使用和部署。下面详细介绍一下PyInstaller的使用。 1. 安装PyInstaller 可以使用pip安装PyInstaller,输入以下命令即可: ```bash pip install pyinstaller ``` 2. 打包命令 打包命令非常简单,只需要进入项目的根目录,然后在终端中输入以下命令即可: ```bash pyinstaller -F file.py ``` 其中,file.py为你要打包Python文件名。-F参数表示生成单个可执行文件。生成的可执行文件在dist目录下。 3. 打包选项 PyInstaller还提供了很多打包选项,可以根据需要进行设置。下面列举一些常用选项: - -F,--onefile:生成单个可执行文件。 - -D,--onedir:生成目录的打包文件,包含多个文件。 - -i,--icon=FILE.ico:设置生成的可执行文件图标。 - --add-data:添加附加文件或目录。例:--add-data 'images/*.png:images'。 - --hidden-import:隐式导入,添加未自动检测到的模块。例:--hidden-import ‘pymysql’。 4. 打包注意事项 打包注意事项如下: - PyInstaller打包时,可能会遇到一些Python模块无法正常导入的情况。这时,可以使用-h命令查看帮助文档,确定需要添加哪些选项。 - 打包出来的可执行文件可能会被杀毒软件误判为病毒,这时可以尝试关闭杀毒软件或者将生成的可执行文件添加到白名单中。 总的来说,PyInstaller非常适合用于将Python程序打包成可执行文件。在使用过程中,需要注意的一些细节,但是只要根据需要设置选项,就能够很方便地生成可执行文件。 ### 回答3: PyInstaller是一个用于将Python应用程序打包为可执行文件的工具。使用它可以轻松地将Python程序打包成独立的可执行文件,无需安装Python解释器,同时还可以将程序和所有相关依赖打包成单个文件。 PyInstaller支持在Windows、Mac OS X和Linux等多个平台上打包Python应用程序,并且可以将Python脚本转换成一些常见的可执行文件格式,例如Windows下的exe、Mac OS X下的app和Linux下的bin。 使用PyInstaller打包Python程序需要以下步骤: 第一步:安装PyInstaller 使用pip安装PyInstaller:pip install pyinstaller 第二步:创建打包文件的.spec文件 在命令行中执行pyinstaller命令,创建一个.spec文件。该文件包含了打包所需要的参数。 例如:pyinstaller hello.py --name=hello --onefile 执行上述命令后,会在当前目录下生成一个.spec文件,它包含了打包所需要的参数。 第三步:编辑.spec文件 使用文本编辑器打开.spec文件,根据需要修改其中的参数。参数的详细说明可以在PyInstaller的官方文档中查看。 第四步:执行打包命令 使用命令行中执行pyinstaller命令,指定.spec文件作为参数来进行打包。 例如:pyinstaller hello.spec 执行该命令后,将生成可执行文件和各种附属文件,包括打包Python解释器和所需的库文件等。 使用PyInstaller打包Python程序可以帮助开发者简化应用程序的部署过程,使得用户可以更加方便地使用Python应用程序。同时,打包后的程序也具有更好的可移植性和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值