【问题标题】:Cannot find `protoc` command找不到`protoc`命令
【发布时间】:2019-03-26 12:25:29
【问题描述】:

当我运行这个时:

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: No such file or directory 中的所有说明,但它们从未对我有用

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

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=.

也失败了。

【问题讨论】:

标签: python tensorflow object-detection protoc


【解决方案1】:

您需要将位于 zip 文件中的 protoc.exe 文件保存到 C:\Users\Satyarth\AppData\Local\Programs\Python\Python36\Scripts

将路径中的“Satyarth”替换为您的用户名。

如果还是不行,把上面的路径放到环境变量中。

【讨论】:

    【解决方案2】:

    我在 Windows 10 上解决问题的方法是

    1. 从链接https://github.com/protocolbuffers/protobuf/releases复制protoc文件https://github.com/protocolbuffers/protobuf/releases/download/v3.12.4/protoc-3.12.4-win64.zip
    2. 解压 zip 文件的内容。
    3. Bin 目录包含 protoc.exe
    4. 更新环境变量以指向包含 protoc.exe 的 bin 目录
    5. 重新打开cmd作为环境变量只在新的命令窗口生效
    6. 运行 protoc object_detection/protos/*.proto --python_out=.

    【讨论】:

      【解决方案3】:

      转到此页面以查找最新版 Protobuf 的可下载文件:https://www.github.com/google/protobuf/releases/latest

      然后,只需为您的操作系统下载以protoc 开头的 zip 文件。

      接下来,解压它,你会得到一个protoc 应用程序。

      最后,你可以把它放在你的本地机器上。

      【讨论】:

        【解决方案4】:

        首先,确保您的系统上安装了 protobuf >=3。

        Windos 上的 protobuf 通常通过你的 Python 包安装 经理,例如conda 或 pip,并且应该已经在您的环境中。 您可以检查它是否使用conda listpip freeze.

        如果没有安装,直接运行

        conda install protobuf 要么 pip install protobuf

        【讨论】:

          【解决方案5】:
          1. 当您从 https://github.com/protocolbuffers/protobuf/releases 下载 .zip 时,请确保您获取的文件适用于您的操作系统。
          2. 对于Windows,在环境变量中,你需要添加包含protoc.exe的文件夹,所以在我的例子中是C:\Program Files\GoogleProtobuf\bin

          这对我有用。

          【讨论】:

            【解决方案6】:

            前段时间我也遇到了这个错误 要解决此问题:按照下列步骤操作:

            1. 从这个github repo 安装适用于您的操作系统的协议,对我来说它是
              protoc-3.13.0-win64.zip

            2. 解压 zip 文件并将其放入永久保存的文件夹中

            3. 转到 protocFolder 中的 bin 文件夹,在我的情况下,我必须转到
              F:\Programing_stuff\ML\protoc-3.17.3-win64\bin 或者只是找到protoc.exe 文件所在的位置并复制路径

            4. 然后在 Windows 搜索栏中输入path 并点击Edit the system environment variables

            5. 以及bin文件夹的路径

            希望这有帮助,如果不检查这个video 或者这个website(如果你想安装TensorFlow)

            【讨论】:

              【解决方案7】:

              根据您的平台,您可能需要在本地安装 protobuf。有关详细说明,请参阅 the docs

              【讨论】:

              • 我的 windows 是 10,64 位的。你指的是哪个平台?
              【解决方案8】:

              首先考虑将Protobuf Compiler 安装在C:\Program Files 文件夹中。然后每次要使用Tensorflow Object Detection API 时都需要编译protobuf。为此,请打开 ../models/research 目录中的 cmd 并运行

              “C:\Program Files\protoc-<PROTO_VERSION>\bin\protoc.exe” object_detection/protos/*.proto --python_out=.

              其中<PROTO_VERSION> 是您正在使用的protobuf 编译器的版本(例如protoc-3.5.1-win64 或您为protobuf 选择的文件夹的名称)。

              请注意,您应该在每个启动的 cmd 窗口中编译 protobuf 以使用对象检测。

              【讨论】:

              • 当我在路径c:\program files中保存protobuf编译器zip文件夹时,出现一条短信“您无权保存在此位置联系管理员获取权限”。
              • windows 是 10 64 位,我安装了 protoc-3.5.1-win32。
              • 尝试使用管理员权限将您的 zip 文件夹解压到 Program files
              • 此命令出现“C:\Program' 不是内部或外部命令、可运行程序或批处理文件。”使用管理员权限并键入此命令“C:\Program Files\protoc-protoc-3.6.1-win32\bin\protoc.exe” object_detection/protos/*.proto --python_out=。在 c:\tensorflow\models\research
              • 您是否将路径放入引号中,例如 "C:\Program Files\..." 而不是只写 C:\Program Files\...
              【解决方案9】:

              我的 windows 解决方案:

              • here下载protoc-3.18.0-win64.zip
              • 从 bin 目录中提取 zip 并复制 proto.exe 并将其粘贴到 models/research 文件夹中
              • 然后运行这个命令protoc object_detection/protos/*.proto --python_out=.

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2021-04-08
                • 2021-02-10
                • 1970-01-01
                相关资源
                最近更新 更多