如何在 python3 中安装 COCO PythonAPI

How to install COCO PythonAPI in python3

COCO PythonAPI好像只支持python2。但是人们确实在 python3 环境中使用它。

我尝试了可能的安装方法,例如

python3 setup.py build_ext --inplace
python3 setup.py install

但是 python3 setup.py install 会失败,因为 coco.pycocoeval.py 包含 python2 打印功能。

更新:通过更新 COCO PythonAPI 项目解决。把这个问题留给面临同样问题的人。

请尝试以下步骤:

  1. 使用 git 克隆将文件夹克隆到您的驱动器中。在这种情况下,它应该是 git clone https://github.com/cocodataset/cocoapi.git
  2. 使用终端进入目录,或在目录内打开一个终端
  3. 输入 2to3 . -w。请注意,您可能必须安装一个包才能获得 2to3。它是将代码从 Python2 转换为 Python3 的优雅工具;此代码将所有 .py 文件从 Python2-compatible 转换为 Python3-compatible
  4. 使用终端导航到设置文件夹
  5. 输入python3 setup.py install

这应该可以帮助您安装 COCO 或任何用于 Python2 的软件包,以及 运行 使用 Python3 的软件包。干杯!

您也可以下载和使用 cocoapi 的替代版本(我使用的是 python 3.5)。您可能想尝试以下解决方案:

安装

  1. 而不是官方版本(python 3 有问题)使用 alternative one。将它安装在本地计算机上,全局(即在任何虚拟环境之外)。您可以通过以下方式做到这一点:

    pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

  2. 查看是否全局安装:

    pip freeze | grep "pycocotools"

您应该会在输出中看到类似 pycocotools==2.0.0 的内容。

  1. 现在,在您的虚拟环境(conda 或其他)中,首先安装 numpycython(如果未安装,则可能 setuptools)使用pip,然后:

    pip install pycocotools

验证

在您的项目中,导入(例如)from pycocotools import mask as mask,然后导入 print(mask.__author__)。这样应该会打印出作者的名字,也就是tsungyi.

它在哪里?

已安装的软件包,与使用 pip 在虚拟环境中本地安装的任何其他软件包一样,将转到 外部库 您的项目,在 site-packages 下。这意味着它现在是您的虚拟环境的一部分,而不是您项目的一部分。因此,可能想要使用您的代码的其他用户也必须在他们的虚拟环境中重复此安装。


疑难解答:

造成混淆的主要来源是 您在安装 cocoapi 之前没有安装所需的软件包,或者 您确实安装了所需的软件包但是为了不同的python版本。当您想检查是否安装了某些东西时,您可以检查 python3.6 并查看它是否存在,但实际上您是 运行使用 python3.7 设置所有命令。因此,假设您使用的是 python3.7。您需要确保:

  1. python -V 给你 python3.7 而不是其他版本, pip -V 给你 pip 19.2.3 from /home/<USER>/.local/lib/python3.7/site-packages/pip (python3.7),它实际上与您的默认 python 版本匹配。如果不是这种情况,您可以使用 sudo update-alternatives --config python 更改默认值 python,并按照一步说明进行操作。

  2. 所有必需的包都使用正确的 pythonpip 版本安装。您可以使用 pippip3 检查这一点,以阻止可能导致问题的任何差异: pip freeze | grep "<SUBSTRING-NAME-OF-PACKAGE>"pip show <PACKAGE-NAME> 用于 pip.

  3. 的更新版本
  4. 要安装所需的软件包,在确定 (1) 之后,您需要 运行: sudo apt install python-setuptools python3.7-dev python3-wheel build-essentialpip install numpy cython matplotlib


环境: 以上步骤在Ubuntu18.4python3.6.8pip 19.0上测试。 3.

我简单的一步就完成了

pip install "git+https://github.com/philferriere/cocoapi.git#egg=pycocotools&subdirectory=PythonAPI"

** 在此之前,您需要在路径中安装 Visual C++ 2015 构建工具

如果您正在努力在 Ubuntu 20.04 和 python3.7 上构建 pycocotools 试试这个:

sudo apt-get install -y python3.7-dev
python3.7 -m pip install pycocotools>=2.0.1

这是我成功的方式! (原因是gcc版本)

  1. 安装依赖:cython (pip install cython), opencv (pip install opencv-python)

  2. 通过以下命令检查 gcc 版本:gcc --version

  3. 你的输出将是这样的 'Command 'gcc' not found, but can be installed with: sudo apt 安装 gcc '

  4. 键入以下命令安装 gcc: 须藤更新

    sudo apt 安装build-essential

    sudo apt-get 安装 manpages-dev

  5. 现在再次检查 gcc 版本(第 2 步) 如果你低于输出

    'gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0 版权所有 (C) 2019 Free Software Foundation, Inc. 这是免费软件;有关复制条件,请参阅来源。没有 保修单;甚至不是针对特定用途的适销性或适用性。'

  6. 现在运行 pycocotools 安装代码:

    pip 安装“git+https://github.com/philferriere/cocoapi.git#egg=pycocotools&subdirectory=PythonAPI”

  7. 最后等待检查是否安装成功:

    'Successfully installed pycocotools-2.0'