pyinstaller打包tensorflow文件

安装

pyinstaller的安装环境一定要与tensorflow的安装环境一致。

我的tensorflow安装在anaconda创建的一个的环境中,该环境名为tensorflow3.5,因此pyinstaller要安装于此,在cmd中输入如下,即可安装成功

activate tensorflow3.5
pip install pyinstaller

使用

例如我的要打包inference_RS_CMD.py文件,那么最好将它依赖的其他py文件都放在同一目录下,如下:

在该文件夹进入cmd,激活环境,并输入:

pyinstaller -F inference_RS_CMD.py 

可能出现的问题及解决方案

1.出现UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position

     解决方案:预先在cmd中输入 :chcp 65001  #使用code - 8

2.出现Cannot find existing PyQt5 plugin directories,往往后面还会跟有一个路径,我遇见的是C:\qt5b\qt_1524647842210\_h_env\Library\plugins或者C:\bob\Qt-opensource\5.11.1\msvc2017_64\plugins

     解决方案:

   (1)首先看自己的环境中有没有安装qyqt5,若安装有qyqt5,那就根据它的提示在c盘中新建这个路径,把qyqt5(python的Lib/site-package路径)中的内容都拷贝到该路径中。

   (2)如果(1)不行并且你的代码中没有用到pyqt5,就卸载pyqt5,亲测有效。(卸载pyqt5后spyder可能打不开...)

   (3)如果你的代码用到pyqt5,百度吧

3.出现"RecursionError: maximum recursion depth exceeded"

     解决方案:在.spec文件中添加

    import sys
    sys.setrecursionlimit(5000)

    之后直接在cmd中运行:

pyinstaller xxx.spec

返回exe文件的路径

在写python程序中,有可能需要获取当前运行脚本的路径。打包成exe的脚本和直接运行地脚本在获取路径上稍微有点不同。

获取exe绝对路径的代码为:

import os
import sys
if getattr(sys, 'frozen', False):  #如果是exe文件
        root = os.path.dirname(sys.executable)
elif __file__:
        root = os.path.dirname(__file__)

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,我可以为您提供使用Docker打包SMILES.yaml环境及相关预测代码的步骤。 首先,您需要在宿主机上安装Docker Desktop并启动。 接下来,在Windows Subsystem Linux安装Docker并启动。 然后,在Windows Subsystem Linux创建一个Dockerfile文件,其包含以下内容: ``` FROM continuumio/miniconda3 COPY SMILES.yaml . RUN conda env create -f SMILES.yaml SHELL ["conda", "run", "-n", "env_name", "/bin/bash", "-c"] COPY Smiles-prediction.py . CMD ["python", "Smiles-prediction.py"] ``` 这个Dockerfile文件使用了一个基础镜像:continuumio/miniconda3,然后将SMILES.yaml文件复制到镜像,并使用conda命令创建一个名为env_name的环境。 接着,将Smiles-prediction.py文件复制到镜像,并使用CMD命令来指定容器启动时要运行的命令。 接下来,您需要在Windows Subsystem Linux使用以下命令来构建Docker镜像: ``` docker build -t smiles-prediction:latest . ``` 这个命令将使用刚才创建的Dockerfile文件来构建一个名为smiles-prediction的镜像。 最后,您可以使用以下命令来运行这个镜像: ``` docker run --name smiles-prediction -it smiles-prediction:latest ``` 这个命令将创建一个名为smiles-prediction的容器,并在其运行smiles-prediction镜像。 现在,您可以在容器测试您的预测代码了。 如果您想将包含SMILES.yaml环境和预测代码的Docker镜像打包为predection.exe文件,您可以使用Docker Desktop的“Export”功能来完成。在Docker Desktop,选择您刚才创建的smiles-prediction容器,然后点击“Export”按钮。根据提示选择导出的文件路径和格式,然后等待导出完成即可。 希望这些步骤能够帮助到您。如果您还有其他问题或需要更多的帮助,请随时告诉我。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值