gpt4 book ai didi

python - 使用 Pyinstaller 时找不到隐藏的导入 Tensorflow 包

转载 作者:行者123 更新时间:2023-12-04 11:03:52 34 4
gpt4 key购买 nike

我正在尝试将我的对象检测器 python 项目转换为可执行文件,但我总是收到这些警告并且我的可执行文件无法运行。

64422 WARNING: Hidden import "tensorflow._api.v2.compat.v1.estimator" not found!
64425 WARNING: Hidden import "tensorflow._api.v2.compat.v2.compat.v2.keras.metrics" not found!
64843 WARNING: Hidden import "tensorflow._api.v2.compat.v1.compat.v1.keras.applications.resnet50" not found!
64844 WARNING: Hidden import "tensorflow._api.v2.compat.v1.compat.v1.keras.applications.resnet" not found!
64845 WARNING: Hidden import "tensorflow._api.v2.compat.v2.compat.v2.keras.backend" not found!
64857 WARNING: Hidden import "tensorflow._api.v2.compat.v1.compat.v1.estimator.tpu" not found!
64859 WARNING: Hidden import "tensorflow._api.v2.compat.v2.compat.v1.keras.applications.mobilenet" not found!
64892 WARNING: Hidden import "tensorflow._api.v2.compat.v1.compat.v1.keras.applications.vgg19" not found!
64894 WARNING: Hidden import "tensorflow._api.v2.compat.v2.compat.v2.keras.preprocessing.text" not found!
64896 WARNING: Hidden import "tensorflow._api.v2.compat.v1.compat.v1.estimator.tpu.experimental" not found!
64899 WARNING: Hidden import "tensorflow._api.v2.compat.v1.compat.v1.keras.applications.resnet_v2" not found!
64956 WARNING: Hidden import "tensorflow._api.v2.compat.v2.compat.v1.keras.wrappers.scikit_learn" not found!
64957 WARNING: Hidden import "tensorflow._api.v2.compat.v2.compat.v2.keras.applications.resnet50" not found!
64958 WARNING: Hidden import "tensorflow._api.v2.compat.v1.compat.v1.keras.wrappers.scikit_learn" not found!
65073 WARNING: Hidden import "tensorflow._api.v2.compat.v1.compat.v2.keras.applications.imagenet_utils" not found!
65073 WARNING: Hidden import "tensorflow._api.v2.compat.v1.compat.v2.keras.datasets.cifar100" not found!
65238 WARNING: Hidden import "tensorflow._api.v2.compat.v1.compat.v1.keras.optimizers" not found!
我的项目结构是
- project folder
- venv
- main.py
- detect.py
里面 detect.py我有以下进口
import tensorflow as tf
from tensorflow.python.saved_model import tag_constants
from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession
tensorflow module可以在 site-packages 中找到里面 venv文件夹
我尝试过的解决方案是添加 --hidden-import tensorflow如本文所述标记 Question
pyinstaller --hidden-import tensorflow --onefile main.py
我也试过 this approach通过创建 hooks带有 hook-tensorflow.py 的目录文件
- project folder
- venv
- hooks
- hook-tensorflow.py
- main.py
- detect.py
钩子(Hook) tensorflow .py
from PyInstaller.utils.hooks import collect_all


def hook(hook_api):
packages = [
'tensorflow'
]
for package in packages:
datas, binaries, hiddenimports = collect_all(package)
hook_api.add_datas(datas)
hook_api.add_binaries(binaries)
hook_api.add_imports(*hiddenimports)
然后发出这个终端命令
pyinstaller --additional-hooks-dir=hooks --onefile main.py
但是,同样的警告仍然存在,我的可执行文件不会运行。

最佳答案

您可以尝试使用 python=3.8 创建虚拟环境, 如果您使用的是 anaconda 则运行命令 conda create -n env1 python=3.8在此之后使用环境只需运行 conda activate env1并仅安装您的应用程序所需的软件包。
这样做的好处是节省了编译EXE文件的时间,而且文件大小也相对较小。
我遇到了同样的问题,这个技巧对我有用。
您可能不必也使用它来添加钩子(Hook)。
记得在环境中安装 pyinstaller 并始终在编译 EXE 之前激活。

关于python - 使用 Pyinstaller 时找不到隐藏的导入 Tensorflow 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68027646/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com