似乎dataset/cocoapi" rel="nofollow noreferrer">COCO PythonAPI只支持python2。但是人们确实在Python的环境中使用它。
我试过可能的安装方法,比如
python3 setup.py build_ext --inplace
python3 setup.py install
但是python3 setup.py install
将失败,因为coco.py
和cocoeval.py
包含python2打印函数。
更新:通过更新COCO PythonAPI项目解决。把这个问题留给面临同样问题的人。
请尝试以下步骤:
git clone https://github.com/cocodataset/cocoapi.git
。2to3 . -w
。请注意,您可能需要安装一个包才能获得2to3。它是一个将代码从Python2转换为Python3的优雅工具。此代码将所有.py文件从Python2兼容转换为Python3兼容。python3 setup.py install
。这将帮助您安装COCO或任何Python2的包,并使用Python3运行该包。干杯!
还有其他版本的cocoapi可以下载并使用(我使用的是python 3.5)。下面是一个您可能想要尝试的解决方案:
How to download and use object detection datasets (e.g. coco or pascal)
安装
使用alternative one代替官方版本(它与python 3有问题)。将其安装在本地计算机上,全局(即,在任何虚拟环境之外)。您可以通过以下方式执行此操作:
pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
检查是否全局安装:
pip freeze | grep "pycocotools"
您应该在输出中看到类似
pycocotools==2.0.0
的内容。现在,在您的虚拟环境(conda或其他)中,首先使用pip安装
numpy
和cython
(如果没有安装,可能还有setuptools
),然后:pip install pycocotools
验证
在项目中,导入(例如)
from pycocotools import mask as mask
,然后print(mask.__author__)
。这应该打印出作者的名字,即tsungyi。在哪里?
与使用pip在虚拟环境中本地安装的任何其他包一样,已安装的包将转到项目的外部库下的站点包下。这意味着它现在是虚拟环境的一部分,而不是项目的一部分。因此,其他可能希望使用您的代码的用户也必须在他们的虚拟env上重复此安装。
故障排除:
混淆的主要原因是,在安装cocoapi之前您没有安装所需的包,或者您安装了所需的包,但使用的是不同的python版本。当您想检查是否安装了某个程序时,您可以使用python3.6检查它是否存在,但实际上您正在使用python3.7运行所有命令。因此,假设您使用的是python3.7。你需要确保:
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。所有必需的软件包都是使用正确的python或pip版本安装的。您可以使用
pip
和pip3
检查此项,以停止可能导致问题的任何差异:pip freeze | grep "<SUBSTRING-NAME-OF-PACKAGE>"
或pip show <PACKAGE-NAME>
用于较新版本的pip。要安装所需的软件包,请在确认(1)后运行:
sudo apt install python-setuptools python3.7-dev python3-wheel build-essential
和pip install numpy cython matplotlib
环境: 以上步骤在Ubuntu 18.4,python 3.6.8,pip 19.0.3上进行了测试。
相关问题 更多 >
编程相关推荐