<h3>安装</h3>
<ol>
<li><p>使用<a href="https://github.com/philferriere/cocoapi" rel="nofollow noreferrer">alternative one</a>代替官方版本(它与python 3有问题)。将其安装在本地计算机上,<em>全局</em>(即,在任何虚拟环境之外)。您可以通过以下方式执行此操作:</p>
<p><code>pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI</code></p></li>
<li><p>检查是否全局安装:</p>
<p><code>pip freeze | grep "pycocotools"</code></p></li>
</ol>
<p>您应该在输出中看到类似<code>pycocotools==2.0.0</code>的内容。</p>
<ol start=“3”>
<li><p>现在,在您的虚拟环境(conda或其他)中,首先使用<em>pip</em>安装<code>numpy</code>和<code>cython</code>(如果没有安装,可能还有<code>setuptools</code>),然后:</p>
<p><code>pip install pycocotools</code></p></li>
</ol>
<h3>验证</h3>
<p>在项目中,导入(例如)<code>from pycocotools import mask as mask</code>,然后<code>print(mask.__author__)</code>。这应该打印出作者的名字,即<em>tsungyi</em>。</p>
<h3>在哪里?</h3>
<p>与使用<em>pip</em>在虚拟环境中本地安装的任何其他包一样,已安装的包将转到项目的<em>外部库</em>下的<em>站点包</em>下。这意味着它现在是虚拟环境的一部分,而不是项目的一部分。因此,其他可能希望使用您的代码的用户也必须在他们的虚拟env上重复此安装。</p>
<p/><hr/>
<strong>故障排除:</strong>
<p>混淆的主要原因是,在安装cocoapi之前您没有安装所需的包,或者您安装了所需的包,但使用的是不同的python版本。当您想检查是否安装了某个程序时,您可以使用python<strong>3.6</strong>检查它是否存在,但实际上您正在使用python<strong>3.7</strong>运行所有命令。因此,假设您使用的是<strong>python3.7</strong>。你需要确保:</p>
<ol>
<li><p><code>python -V</code>为您提供<em>python3.7</em>而不是其他版本,并且<code>pip -V</code>为您提供<code>pip 19.2.3 from /home/<USER>/.local/lib/python3.7/site-packages/pip (python3.7)</code>,这实际上与您的默认python版本匹配。如果不是这样,您可以使用<code>sudo update-alternatives --config python</code>并按照一步指令更改默认的python。</p></li>
<li><p>所有必需的软件包都是使用正确的<em>python</em>或<em>pip</em>版本安装的。您可以使用<code>pip</code>和<code>pip3</code>检查此项,以停止可能导致问题的任何差异:
<code>pip freeze | grep "<SUBSTRING-NAME-OF-PACKAGE>"</code>或<code>pip show <PACKAGE-NAME></code>用于较新版本的<em>pip</em>。</p></li>
<li><p>要安装所需的软件包,请在确认(1)后运行:
<code>sudo apt install python-setuptools python3.7-dev python3-wheel build-essential</code>和<code>pip install numpy cython matplotlib</code></p></li>
</ol>
<p/><hr/>
<strong>环境:</strong>
以上步骤在<em>Ubuntu 18.4</em>,<em>python 3.6.8</em>,<em>pip 19.0.3</em>上进行了测试。