背景:
我是Python/Cpp的新手,正在尝试安装一个名为python-crfsuite的Python包,需要使用VS进行编译。
我已经安装了Anaconda3、Python3.6和VS2017社区版安装程序(因为我认为这更好,因为我将使用VS的编译器:
cl.exe
)。我已经运行了
vcvarsall.bat
。我运行的所有命令都是管理员权限。
过程:
当我尝试使用pip install
命令安装python-crfsuite时,它给我报错:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Icrfsuite/include/ -Icrfsuite/lib/cqdb/include -Iliblbfgs/include -Ipycrfsuite -Icrfsuite/win32 -Iinclude "-IC:\Program Files\Anaconda3\include" "-IC:\Program Files\Anaconda3\include" /EHsc /Tppycrfsuite/_pycrfsuite.cpp /Fobuild\temp.win-amd64-3.6\Release\pycrfsuite/_pycrfsuite.obj
_pycrfsuite.cpp
c:\program files\anaconda3\include\pyconfig.h(59): fatal error C1083: Cannot open include file: 'io.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.10.25017\\bin\\HostX86\\x86\\cl.exe' failed with exit status 2
我已经阅读了这里的答案。于是我尝试将环境变量中的路径替换为以下内容:
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.10.25017\bin\HostX86\x86
=>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX86\x86
但对我没有任何作用。然后我尝试下载
io.h
并将其放置在C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\include
中,但它是无用的。最后我尝试使用conda install
conda install -c conda-forge python-crfsuite
,它是成功的
问题
为什么
conda install
没有io.h
的问题,与pip install
有什么不同?为什么在VS中有多个不同路径的
cl.exe
(我不太熟悉),使用不同的cl.exe
是否有区别?
我提出这些问题是因为即使我安装了Anaconda,如果我想使用pip install,我仍然必须面对这些问题,但我仍然无法解决它们。
VC++ 2015.3 v140工具集
就可以构建这个库。例如(他们可能没有使其与VS2017构建工具兼容)。 - Hakim