pip 不安装现有包

pip not installing existing package

我正在尝试使用 pip 安装 spacy 2.1.0。但是,我 运行 遇到了一个问题,我收到一条错误消息,指出

ERROR: Could not find a version that satisfies the requirement spacy==2.1.0 
(from versions: 0.31, 0.32, 0.33, 0.40, 0.51, 0.52, 0.60, 0.61, 0.62, 0.63, 0.64, 0.65, 0.67, 0.68, 0.70, 
0.80, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.90, 0.91, 0.92, 0.93, 0.94, 0.95, 0.97, 
0.98, 0.99, 0.100.0, 0.100.1, 0.100.2, 0.100.3, 0.100.4, 0.100.5, 0.100.6, 0.100.7, 0.101.0, 1.0.1, 
1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.1.0, 1.1.1, 1.1.2, 1.2.0, 1.3.0, 1.4.0, 1.5.0, 1.5.1, 1.6.0, 
1.7.0, 1.7.1, 1.7.2, 1.7.3, 1.7.5, 1.8.0, 1.8.1, 1.8.2, 1.9.0, 1.10.0, 1.10.1, 2.0.0, 
2.0.1.dev0, 2.0.1, 2.0.2.dev0, 2.0.2, 2.0.3.dev0, 2.0.3, 2.0.4.dev0, 2.0.4, 2.0.5.dev0, 2.0.5, 
2.0.6.dev0, 2.0.6, 2.0.7, 2.0.8, 2.0.9, 2.0.10.dev0, 2.0.10, 2.0.11.dev0, 2.0.11, 2.0.12.dev0, 
2.0.12.dev1, 2.0.12, 2.0.13.dev0, 2.0.13.dev1, 2.0.13.dev2, 2.0.13.dev4, 2.0.13, 2.0.14.dev0, 
2.0.14.dev1, 2.0.15, 2.0.16.dev0, 2.0.16, 2.0.17.dev0, 2.0.17.dev1, 2.0.17, 2.0.18.dev0, 
2.0.18.dev1, 2.0.18, 2.1.0, 2.1.1.dev0, 2.1.1, 2.1.2, 2.1.3, 2.1.4, 2.1.5, 2.1.6, 2.1.7.dev0, 
2.1.7, 2.1.8, 2.1.9, 2.2.0.dev10, 2.2.0.dev11, 2.2.0.dev13, 2.2.0.dev15, 2.2.0.dev17, 
2.2.0.dev18, 2.2.0.dev19, 2.2.0, 2.2.1, 2.2.2.dev0, 2.2.2.dev4, 2.2.2, 2.2.3.dev0, 2.2.3, 2.2.4, 
2.3.0.dev1, 2.3.0, 2.3.1, 2.3.2, 2.3.3.dev0, 2.3.3, 2.3.4, 2.3.5, 3.0.0, 3.0.1.dev0, 3.0.1, 
3.0.2, 3.0.3, 3.0.4, 3.0.5, 3.0.6)
ERROR: No matching distribution found for spacy==2.1.0

我觉得这很奇怪,因为它说它搜索了 2.1.0 版本(消息的第 11 行),但它仍然没有检测到它。

我的pip版本有最新更新。我在虚拟环境中工作。我使用的是 macOS Big Sur 11.1 版。我正在使用 Python 3.8.3。要重现错误,请使用最新版本的 pip 21.1、运行 pip install spacy==2.1.0 设置一个清晰的虚拟环境。然后,等待一段时间后,应该会弹出错误消息。

我不确定为什么会出现此消息,因为它知道 spacy 2.1.0 存在。我在其他包中也遇到过这个错误,例如 scikit-learn。我也曾尝试直接从 tar.gz 文件安装,但无济于事。然后,我得到一个错误 exited with status 1。不过,如果大家对我如何成功安装此版本的 spacy 有任何解决方案,我将不胜感激。

此外,我对在堆栈溢出上发帖有点陌生,所以如果我的消息中遗漏了任何对您有帮助的内容,请不要犹豫,让我知道。谢谢 :D

查看 wheels on PyPI it seems like there are no build currently for macosx 11 (Big Sur) the closest is this one 您可以使用以下方式安装:

pip install https://files.pythonhosted.org/packages/9a/97/4cac1c4ac95af031b627968120bf273193e2f2134ff01b069cf630414272/spacy-3.0.6-cp38-cp38-macosx_10_9_x86_64.whl

但是您应该会收到一条错误消息,指出该平台不支持滚轮。这可能就是为什么即使 pip 列出了库的版本,您仍然收到该错误消息的原因。您要么必须降级到受支持的 macOS 版本,要么 install from source(下面有关如何安装 v2.1.0 的说明)。

您需要先安装最新版本的 XCode,包括“命令行工具”,然后:

git clone https://github.com/explosion/spaCy
cd spaCy

python -m venv .env
source .env/bin/activate

# make sure you are using the latest pip
python -m pip install -U pip setuptools wheel

# checkout to the desired version of spaCy
git checkout v2.1.0

pip install -r requirements.txt
pip install --no-build-isolation --editable .

@RMPR 的回答一般来说是一个很好的建议,但我怀疑你仍然会 运行 遇到依赖项 blis 所需版本的问题,它有一些 out-dated/hacky OS X 设置可能是原始安装错误的根源。

运行 下面看看最后是否有关于 MACOSX_DEPLOYMENT_TARGET 版本不匹配的错误(到那一步需要几分钟;您可以尽快停止命令你看到这个错误):

python -m pip install blis==0.2.4

错误如下所示:

  error: $MACOSX_DEPLOYMENT_TARGET mismatch: now "10.7" but "10.14.6" during configure
  ----------------------------------------
  ERROR: Failed building wheel for blis

10.7blis==0.2.4 中过时的硬编码默认值,因此请将其设置为错误消息中的正确值。在我的示例中,这有效:

MACOSX_DEPLOYMENT_TARGET="10.14.6" python -m pip install spacy==2.1.0

(注意:我只能在 M1 的仿真模式下测试它。)