擅长:python、mysql、java
<p>从PyPI中删除了包<code>certifi==2018.1.18</code>。当前版本是<code>certifi==2018.4.16</code>。原因是<code>certifi</code>有些特殊:它只是根SSL证书的集合,因此一旦它们过时,就会发布带有新证书的<code>certifi</code>的新版本,出于安全原因,旧的证书将被删除,这样您就不会意外地继续安装和使用旧的、可能被吊销或损坏的证书。</p>
<p>您的解决方案是将确切的版本要求全部删除:</p>
<pre><code>setup(
...
install_requires=['certifi'],
...
)
</code></pre>
<p>或者需要一个最低版本,并(可选)与包的新版本进行碰撞:</p>
<pre><code>setup(
...
install_requires=['certifi>=2018.4.16'],
...
)
</code></pre>
<p>后者是我通常使用的方法:这样</p>
<ol>
<li>你总是知道你测试过的需求的最低版本(因此你知道你的软件包可以很好地使用它)</li>
<li>如果用户碰巧安装了<code>certifi</code>的旧版本,则在安装包时,它将自动升级到当前最新版本。</li>
</ol>