使用 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 应用