Pip 安装导致此错误“cl.exe'失败,退出代码 2”

Pip install results in this error " cl.exe' failed with exit code 2 "

我已经阅读了关于此错误的所有其他问题,但令人沮丧的是,none 给出了一个有效的解决方案。

如果我在 cmd 行中 运行 pip install sentencepiece,它会给我以下输出。

 src/sentencepiece/sentencepiece_wrap.cxx(2809): fatal error C1083: Cannot open include file: 'sentencepiece_processor.h': No such file or directory
      error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe' failed with exit code 2
      [end of output]

我 运行ning python 3.10.1 和 pip 22.0.3 .

*我的 windows 机器上有以下 Microsoft Visual C++ 程序,我刚刚重新安装了它,因为它抱怨没有特定的 C++ 程序。 MS VC++

我什至将 .exe 文件添加到我的 PATH 变量中,但我仍然遇到同样的错误。

我的电脑上是否缺少特定的 Microsoft 程序?

我没有在 Windows 中看到这个问题,但是对于 Linux,我通常会在 安装依赖项之后重新安装 Python (比如 MSVC 的东西)。在那种情况下,这特别有用,因为我经常重建(编译和其他相关步骤)Python/Pip。

也可能只是您正在尝试的模块和 Python 版本组合的特定错误。


来自评论中的讨论:

我有 pyenv-win version manager, so I was able to create venvs 并为您测试。使用 Python 3.10.2,失败;使用 Python 3.8.10,它是成功的。所以,是的,重新安装似乎值得你花时间。

与python3.10

关于Windows:首先,install vcpkg and install sentencepiece:x64-windows-static

将头文件和 lib 文件从 vcpkg/installed/x64-windows-static/include 和 lib 复制到

C:/Program Files/python310/build/root/include 和库

这应该可以工作,因为 setup.py 安装需要库在 ..\build\root\lib 目录中。

由于 C:\Program Files\python310\lib 在 /LIBPATH 中,结果 ..\build\root\lib 将指向 sentencepiece.lib

如果仍然遇到错误,则设置 INCLUDE 和 LIB 环境变量,以便从 pip install sentencetransformers 调用的 cl.exe 找到它们。

拥有 windows+python 3.10 env 的人,这里是通过 vcpkg 安装它的确切步骤。

zweistein 的回答中包含其他说明。

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install sentencepiece:x64-windows-static