首页 > 编程问答 >找不到“protoc”命令

找不到“protoc”命令

时间:2024-07-27 14:35:19浏览次数:13  
标签:python tensorflow object-detection protoc

当我在命令行上的张量流对象检测文件上运行此:

protoc --python_out=. .\object_detection\protos\anchor_generator.proto

时,我得到:

'protoc' is not recognized as an internal or external command, operable program or batch file.

我遵循了 protoc object_detection/protos/*.proto中的所有说明:没有这样的文件或目录 ,但它们从来没有为我工作

除了我所做的搜索之外,我尝试了这个命令:

py-3.6 -m pip install protobuf

它对我有用。

我再次输入了该命令

python_out=. .\object_detection\protos\anchor_generator.proto 

但它仍然失败了,如下:

C:\Users\laptop market\Downloads\bin\protoc object_detection/protos/*.proto --py_out=.

也失败。


你得到的错误是,系统无法找到 protoc 命令,这意味着你没有在系统路径中安装 Protocol Buffers 编译器 ( protoc ) 或它没有被正确添加到系统路径中。

以下是如何解决这个问题的方法:

  1. 下载 Protocol Buffers:
  2. 从官方网站 https://github.com/protocolbuffers/protobuf/releases 下载对应你操作系统的预编译二进制文件。
  3. 选择 protoc-<version>-<os>.zip (例如: protoc-3.19.4-win64.zip )。

  4. 提取 Protocol Buffers:

  5. 解压下载的 .zip 文件。
  6. 在解压后的文件夹中找到 bin 文件夹。

    • 里面应该有一个 protoc.exe 文件 (Windows) 或者 protoc 文件 (Linux/Mac)。
  7. 将 Protocol Buffers 添加到系统路径:

  8. Windows:
    • 打开 控制面板 > 系统和安全 > 系统
    • 点击 高级系统设置
    • 系统属性 窗口中,点击 环境变量
    • 系统变量 列表中,找到 Path 变量,并点击 编辑
    • 点击 新建 ,并将 protoc.exe 文件所在的 bin 文件夹的完整路径粘贴进去。
    • 点击 确定 保存所有更改。
  9. Linux/Mac:

    • 打开终端。
    • 使用你喜欢的文本编辑器打开 ~/.bashrc ~/.zshrc 文件。
    • 在文件末尾添加以下行,将 <protoc_bin_path> 替换为 protoc 文件所在的 bin 文件夹的完整路径: bash export PATH=$PATH:<protoc_bin_path>
    • 保存文件并关闭编辑器。
    • 运行 source ~/.bashrc source ~/.zshrc 使更改生效。
  10. 验证安装:

  11. 打开一个新的命令行窗口或终端。
  12. 运行 protoc --version

    • 如果安装成功,你应该会看到安装的 Protocol Buffers 版本号。
  13. 运行你的命令:

  14. 现在你应该能够在你的 TensorFlow 目录中运行以下命令: bash protoc object_detection/protos/*.proto --python_out=.

注意:

  • 确保将 <protoc_bin_path> 替换为你实际提取 Protocol Buffers 的路径。
  • 使用 cd 命令导航到包含 object_detection 文件夹的目录,然后再运行 protoc 命令。

完成这些步骤后,你应该能够成功地使用 protoc 命令编译你的 .proto 文件了。

标签:python,tensorflow,object-detection,protoc
From: 52929161

相关文章

  • 使用 docker run 将 Python 单击选项传递给 ENTRYPOINT 会出现错误:“在 $PATH 中找不
    我有一个简单的python脚本,我想在docker容器内运行它。它打印一行消息“Hello{name}”。python脚本使用clickCLI界面来定义收件人名称,如果我直接运行它(不使用dockerrun命令),它将如下所示:pythonhello.py-nSmithDockerbuild命令:dockerbuild.-thello:1.......
  • 标题:在 OpenSees Python 中定义具有特定卸载行为的双线性弹塑性材料
    我正在使用Python中的OpenSees,我想定义一种在负载下表现出双线性弹塑性行为的材料。但是,我需要在卸载过程中将材质返回到其原始位置,遵循准确的加载路径。在此处输入图像描述我不确定如何在OpenSees中正确实现卸载行为,我正在寻找实现这一具体材料反应的指导。......
  • 使用正则表达式删除Python中常见的公司名称后缀
    我正在努力删除一些公司名称中的后缀。预期结果如下:原始名称:AppleInc.SonyCorporationFiatChryslerAutomobilesS.p.A.SamsungElectronicsCo.,Ltd.清除名称:AppleSonyFiatChryslerAutomobilesSamsungElectronics到目前为止我所做的:importred......
  • 如何将 Brave 网络浏览器与 python、selenium 和 chromedriver 结合使用?
    我从Google的Chrome切换到Brave网络浏览器并且很难让它像Chrome一样与Brave一起使用。Brave是基于Chromium的,所以我猜它应该不会那么难。我确保我的Brave和Chromedriver处于相同版本,像这样,~/some/path$chromedriver--versionChromeDriver76.0.3......
  • 覆盖 python 应用程序时权限被拒绝
    我使用python制作了一个粗略的自动更新应用程序,并使用freeze-cx制作了exe文件。首先,该应用程序检查firebase服务器上是否有最新版本的文件可用,如果可用则下载zip文件。并且应用程序解压并覆盖文件。this_file_path=sys.executableifgetattr(sys,'frozen......
  • Python数据分析案例55——基于LSTM结构自编码器的多变量时间序列异常值监测
    案例背景时间序列的异常值检测是方兴未艾的话题。比如很多单变量的,一条风速,一条用电量这种做时间序列异常值检测,想查看一下哪个时间点的用电量异常。多变量时间序列由不同变量随时间变化的序列组成,这些时间序列在实际应用中通常来自不同的传感器或数据源。多变量时间序列异......
  • 我没有 python 但我有 python3
    我最近格式化了我的笔记本电脑并安装了Ubuntu操作系统。我没有明确安装Python。为了检查它是否已预安装,我在终端中运行python--version并得到了这个:$python--versionCommand'python'notfound,butcanbeinstalledwith:sudoaptinstallpython3......
  • 基于YOLOv9的停车场空闲车位检测【python源码+UI界面+数据集+模型+语音报警+安装说明
    往期精品导航基于YOLOv9的脑肿瘤区域检测智慧课堂基于YOLOv8的学生上课行为检测基于YOLOv9+pyside的安检仪x光危险物物品检测(有ui)基于YOLOv9的PCB板缺陷检测基于YOLOv9的线路绝缘子缺陷检测【python源码+UI界面+数据集+模型+语音报警+安装说明】基于YOLOv9的道路状况检测【......
  • 1-python的数据类型与变量
    一、交互模式与脚本模式交互模式:就相当于一种问答模式,关闭即消失无法保存重用比如python自带的编译器脚本模式:可以将代码长期保存以及重复使用如何创建脚本模式:idle——file——newfile[快捷方式:idle——ctrl+n]保存:ctrl+s运行:F5二、变量(Variable)变量:会变化......
  • 2-Python数据类型——序列
    Python数据类型——序列一、序列序列是一个可以存放多个值的容器。有序序列:在序列中每个值都有对应的下标下标:就相当于酒店的房间号,方便客人的查找与酒店的管理在编程中下标的起始值与日常生活中的计数有所不同:下标的计数从0开始计数,从左往右计数:下标从0开始往右递......