使用 Tensorflow 和 Kivy 从 python 创建 .exe

Posted

技术标签:

【中文标题】使用 Tensorflow 和 Kivy 从 python 创建 .exe【英文标题】:Create .exe from python with Tensorflow and Kivy 【发布时间】:2020-02-06 18:10:30 【问题描述】:

我正在尝试从我的 main.py 脚本制作 .exe 文件。在我的 main.py 文件中,我使用 Kivy 和 Tensorflow。 我使用 Pyinstaller 这样做:

pyinstaller --onefile main.py  

Kivy 没问题,但是我用 Tensorflow 有问题:

ImportError: cannot import name 'pywrap_tensorflow'.

我正在尝试做:

pyinstaller --paths venv\Lib\site-packages\tensorflow_core\

但它并没有解决 mt 问题。我还尝试将 cx_freeze 与此 setup.py 文件一起使用:

from cs_freeze import setup, Executable
setup(name = "main",
      version = "0.1",
      description = "",
      executables = [Executable("main.py")])

但是我对 Kivy 有疑问:

ModuleNotFoundError: no module named 'kivy.weakmethod'.

我想问从使用 Kivy 和 Tensorflow 的 python 脚本创建 .exe 文件的最佳方法是什么。

说实话,我想从本教程创建一个 exe 文件: https://steemit.com/utopian-io/@faad/tensorflow-image-recognition-app-in-kivy

最好的问候

【问题讨论】:

我目前遇到了同样的问题。这是迄今为止我找到的最好的链接 - bitbionic.com/2017/08/02/… - 但我也认为使用的 Python 版本与这个问题有关。关于这种特定技术组合的信息很少。 【参考方案1】:

我解决了如下问题。 首先在我的 .spec 中导入 from PyInstaller.utils.hooks import collect_submodules

在我将我的分析从hiddenimports = [] 更改为hiddenimports=collect_submodules('tensorflow_core') 之后

对我有用

【讨论】:

【参考方案2】:

您是否尝试过: pyinstaller --onefile --paths=<path to venv site packages, e.g. U:\myPyProject\venv\Lib\site-packages> <path to main python script>

所以在你的情况下pyinstaller --onefile --paths=venv\Lib\site-packages main.py

【讨论】:

不幸的是,这会导致错误:ImportError: cannot import name 'pywrap_tensorflow'。 你试过直接在你的venv中安装pyinstaller,然后从那里调用它吗? <path to venv>\Scripts\pyinstaller.exe --onefile --paths=<path to venv site packages, e.g. U:\myPyProject\venv\Lib\site-packages> <path to main python script>

以上是关于使用 Tensorflow 和 Kivy 从 python 创建 .exe的主要内容,如果未能解决你的问题,请参考以下文章

使用 Tensorflow 构建 Kivy Android 应用

Kivy,从python文件更改画布的源图片

tensorflow lite 程序在 buildozer 上与 kivy 崩溃

python- .py 文件中的 Kivy 屏幕管理器

使用 kivy 模块运行 py 文件需要做啥

如何在 Kivy 语言导入中使用别名?