自定义修改的Keras模块虚拟环境安装失败及导入报错求助
我已fork并克隆Keras仓库,创建新分支完成代码修改并提交PR,现需在虚拟环境中安装该自定义修改后的Keras模块,尝试两种方法均失败,后续按指南操作后导入imdb仍报错,具体问题如下:
一、本地安装报错
执行命令:
pip3 install keras --no-index --find-links file:///home/my_usr/keras/
报错信息:
ERROR: Could not find a version that satisfies the requirement keras (from versions: none)
ERROR: No matching distribution found for keras
二、PR链接安装报错
执行命令:
pip3 install git+https://github.com/keras-team/keras.git@refs/pull/16830/head
报错信息:
ERROR: git+https://github.com/keras-team/keras.git@refs/pull/16830/head does not appear to be a Python project: neither 'setup.py' nor 'pyproject.toml' found.
三、导入imdb时报错
后续按指南操作(确认处于正确分支且目录结构一致),导入imdb时出现如下错误:
Traceback (most recent call last): File "", line 1, in
File
"/home/my_user/keras_installation/keras/keras/init.py", line 21,
in
from keras import models File "/home/my_user/keras_installation/keras/keras/models/init.py",
line 18, in
from keras.engine.functional import Functional File "/home/my_user/keras_installation/keras/keras/engine/functional.py",
line 27, in
from keras.dtensor import layout_map as layout_map_lib File "/home/my_user/keras_installation/keras/keras/dtensor/layout_map.py",
line 27, in
from keras.engine import base_layer File "/home/my_user/keras_installation/keras/keras/engine/base_layer.py",
line 43, in
from keras.saving.saved_model import layer_serialization File "/home/my_user/keras_installation/keras/keras/saving/saved_model/layer_serialization.py",
line 22, in
from keras.saving.saved_model import save_impl File "/home/my_user/keras_installation/keras/keras/saving/saved_model/save_impl.py", line 34, in
from keras.saving.saved_model import load as keras_load File "/home/my_user/keras_installation/keras/keras/saving/saved_model/load.py",
line 29, in
from keras.protobuf import saved_metadata_pb2 ImportError: cannot import name 'saved_metadata_pb2' from 'keras.protobuf' (unknown
location)
解决方案
1. 正确本地安装方式
之前的--find-links参数用法错误,直接进入本地Keras仓库目录,用开发模式安装(修改代码后无需重新安装,实时生效):
cd /home/my_usr/keras/ pip3 install -e .
2. 修复PR安装问题
原命令指向官方仓库的PR引用,可能没有正确的构建文件,应使用你自己fork后的仓库地址和分支名:
pip3 install git+https://github.com/[你的GitHub用户名]/keras.git@[你的自定义分支名]
3. 解决protobuf导入错误
该错误是因为缺少编译后的protobuf文件,在本地仓库执行编译脚本:
cd /home/my_usr/keras/ python build_utils/protoc_build.py
同时确保安装protobuf依赖:
pip3 install protobuf
内容的提问来源于stack exchange,提问作者roschach

