Install
Instead of the official version (which has issues with python 3) use an alternative one. Install it on your local machine, globally (i.e., outside any virtual environment). You can do this by:
pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
Check if it is installed globally:
pip freeze | grep "pycocotools"
You should see something like pycocotools==2.0.0
in your output.
Now, inside your virtual-env (conda or whatever), first install numpy
and cython
(and maybe setuptools
if it's not installed) using pip, and then:
pip install pycocotools
Verify
Inside your project, import (for example) from pycocotools import mask as mask
and then print(mask.__author__)
. This should print out the author's name, which is tsungyi.
Where Is It?
The installed package, like any other packages that are locally installed inside a virtual-env using pip, will go to External Libraries of your project, under site-packages. That means it is now part of your virtual-env and not part of your project. So, other users who may want to use your code, must repeat this installation on their virtual-env as well.
Troubleshooting:
The main source of confusion is that either you did not install the required packages before installing cocoapi, or you did install the required packages but for a different python version. And when you want to check if something is installed, you may check with, for instance, python3.6 and see that it exists, but you are actually running all your commands with python3.7. So suppose you are using python3.7. You need to make sure that:
python -V
gives you python3.7 and NOT other version, and pip -V
gives you pip 19.2.3 from /home/<USER>/.local/lib/python3.7/site-packages/pip (python3.7)
, that actually matches with your default python version. If this is not the case, you can change your default python using sudo update-alternatives --config python
, and following the one-step instruction.
All the required packages are installed using the right python or pip version. You can check this using pip
and pip3
to stop any differences that may cause an issue:
pip freeze | grep "<SUBSTRING-NAME-OF-PACKAGE>"
or pip show <PACKAGE-NAME>
for more recent versions of pip.
To install the required packages, after you made sure about (1), you need to run:
sudo apt install python-setuptools python3.7-dev python3-wheel build-essential
and pip install numpy cython matplotlib
Environment:
The above steps were tested on
Ubuntu 18.4,
python 3.6.8,
pip 19.0.3.