配置:
- 系統: 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安裝的版本