配置:
- 系统: win 10
- python version : 3.6
- pyltp version : 0.2.1
- pip version: 18.0
问题描述:
执行
pip install pyltp
在build cpp阶段错误, 系统已安装VS2017.
错误信息:
...
c:\users\\appdata\local\temp\pip-install-do3eqyig\pyltp\ltp\src\srl\include\extractor\Converter.h(): warning C4267: “初始化”: 从“size_t”转换到“unsigned int”,可能丢失数据
c:\users\\appdata\local\temp\pip-install-do3eqyig\pyltp\ltp\src\srl\include\extractor\Converter.h(): note: 编译 类 模板 成员函数 "void extractor::Converter<extractor::DataFileName,extractor::DataFileContext>::run(void)" 时
ltp/src/srl/common/extractor/ExtractorFileToWordEmb.h(): note: 参见对正在编译的函数 模板 实例化“void extractor::Converter<extractor::DataFileName,extractor::DataFileContext>::run(void)”的引用
ltp/src/srl/include/extractor/ConverterFileReader.h(): note: 参见对正在编译的 类 模板 实例化 "extractor::Converter<extractor::DataFileName,extractor::DataFileContext>" 的引用
c:\users\\appdata\local\temp\pip-install-do3eqyig\pyltp\ltp\src\srl\include\extractor\Converter.h(): error C3861: “convert”: 找不到标识符
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.15.26726\\bin\\HostX64\\x64\\cl.exe' failed with exit status
问题定位:
pip版本不同,对于build的方式不同,从而build pyltp的c++包时发生错误.
解决方法:
1) 下载wheel文件
pyltp-0.2.1-cp36-cp36m-win_amd64.whl
2) 在wheel文件的文件夹下执行
pip install pyltp-.-cp36-cp36m-win_amd64.whl
3) 安装成功. 使用wheel安装之前,可先执行
python install wheel
更新wheel安装的版本