同事給了網址 https://github.com/facebookresearch/fastText ,想安裝測試也一下
下載zip包,解壓,進入fastText-master目錄下進CMD命令行執行python setup.py install
報錯:
Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools
下載Microsoft Visual C++ 2017 Redistributable (x64) - 14.13.26020裝上還是提示這個。根據v2ex上的幫助安裝了根據stackoverflow上的幫助下載Visual Studio Community 2017安裝,打開Visual Studio Installer,選pip install pycryptodome
、pip install --upgrade setuptools
依舊無效使用C++的桌面開發
,右側摘要
裏面,關閉其他項,只選勾上用於桌面的 VC++ 2015.3 v140工具集(x86, x64)
安裝。終於過了。然後報錯:
ModuleNotFoundError: No module named 'pybind11'
這個文檔裏面有提到的,安裝python install pybind11
。安裝完成提示:Requirement already satisfied: pybind11 in c:\users\l\anaconda3\lib\site-packages (2.3.dev0) notebook 5.4.0 requires ipykernel, which is not installed. jupyter 1.0.0 requires ipykernel, which is not installed. jupyter-console 5.2.0 requires ipykernel, which is not installed. ipywidgets 7.1.1 requires ipykernel>=4.5.1, which is not installed.
繼續安裝
pip install ipykernel
順便提一下,我的python用的是Anaconda,估計省去了安裝NumPy & SciPy的問題。再來安裝fastText,繼續報錯:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\crtdefs.h(10): fatal error C1083: 無法打開包括文件: “corecrt.h”: No such file or directoryerror: command 'C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe' failed with exit status 2
根據csdn上的幫助,還是打開Visual Studio Installer,點擊修改,選
使用C++的桌面開發
,右側摘要
裏面,勾選Windows 10 SDK (10.0.14393.0)
,挑了個最新的win10 SDK安裝。網上的意思是win10 SDK目前並不是向下兼容的,爲了以後着想還是用最新的吧,如果有問題,再裝舊的進行測試。- 繼續報錯一大堆各種錯誤
fastText-master>python setup.py install running install running bdist_egg running egg_info writing python\fasttext.egg-info\PKG-INFO writing dependency_links to python\fasttext.egg-info\dependency_links.txt writing requirements to python\fasttext.egg-info\requires.txt writing top-level names to python\fasttext.egg-info\top_level.txt reading manifest file 'python\fasttext.egg-info\SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'python\fasttext.egg-info\SOURCES.txt' installing library code to build\bdist.win-amd64\egg running install_lib running build_py running build_ext building 'fasttext_pybind' extension C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c / nologo /Ox /W3 /GL /DNDEBUG /MD -Iinclude -Iinclude -Isrc -IC:\Users\L\Anaconda3 \include -IC:\Users\L\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visu al Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14. 0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.1439 3.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\um" "-IC:\Progra m Files (x86)\Windows Kits\10\include\10.0.14393.0\winrt" /EHsc /Tppython/fastTe xt/pybind/fasttext_pybind.cc /Fobuild\temp.win-amd64-3.6\Release\python/fastText /pybind/fasttext_pybind.obj /EHsc /DVERSION_INFO=\"0.8.22\" fasttext_pybind.cc c:\users\l\anaconda3\lib\fasttext-master\src\productquantizer.h(31): warning C43 05: “初始化”: 從“double”到“const fasttext::real”截斷 python/fastText/pybind/fasttext_pybind.cc(49): warning C4996: 'sscanf': This fun ction or variable may be unsafe. Consider using sscanf_s instead. To disable dep recation, use _CRT_SECURE_NO_WARNINGS. See online help for details. C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\ucrt\stdio.h(2254): note: 參見“sscanf”的聲明 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c / nologo /Ox /W3 /GL /DNDEBUG /MD -Iinclude -Iinclude -Isrc -IC:\Users\L\Anaconda3 \include -IC:\Users\L\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visu al Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14. 0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.1439 3.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\um" "-IC:\Progra m Files (x86)\Windows Kits\10\include\10.0.14393.0\winrt" /EHsc /Tpsrc\args.cc / Fobuild\temp.win-amd64-3.6\Release\src\args.obj /EHsc /DVERSION_INFO=\"0.8.22\" args.cc C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c / nologo /Ox /W3 /GL /DNDEBUG /MD -Iinclude -Iinclude -Isrc -IC:\Users\L\Anaconda3 \include -IC:\Users\L\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visu al Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14. 0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.1439 3.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\um" "-IC:\Progra m Files (x86)\Windows Kits\10\include\10.0.14393.0\winrt" /EHsc /Tpsrc\dictionar y.cc /Fobuild\temp.win-amd64-3.6\Release\src\dictionary.obj /EHsc /DVERSION_INFO =\"0.8.22\" dictionary.cc src\dictionary.cc(41): warning C4267: “初始化”: 從“size_t”轉換到“int32_t” ,可能丟失數據 src\dictionary.cc(194): warning C4267: “參數”: 從“size_t”轉換到“const int” ,可能丟失數據 src\dictionary.cc(281): warning C4244: “=”: 從“double”轉換到“float”,可能 丟失數據 src\dictionary.cc(344): warning C4244: “參數”: 從“double”轉換到“fasttext::r eal”,可能丟失數據 src\dictionary.cc(447): warning C4244: “初始化”: 從“double”轉換到“int32_t” ,可能丟失數據 src\dictionary.cc(488): warning C4267: “=”: 從“size_t”轉換到“int32_t”,可 能丟失數據 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c / nologo /Ox /W3 /GL /DNDEBUG /MD -Iinclude -Iinclude -Isrc -IC:\Users\L\Anaconda3 \include -IC:\Users\L\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visu al Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14. 0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.1439 3.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\um" "-IC:\Progra m Files (x86)\Windows Kits\10\include\10.0.14393.0\winrt" /EHsc /Tpsrc\fasttext. cc /Fobuild\temp.win-amd64-3.6\Release\src\fasttext.obj /EHsc /DVERSION_INFO=\"0 .8.22\" fasttext.cc c:\users\l\anaconda3\lib\fasttext-master\src\productquantizer.h(31): warning C43 05: “初始化”: 從“double”到“const fasttext::real”截斷 src\fasttext.cc(70): warning C4244: “參數”: 從“double”轉換到“fasttext::real ”,可能丟失數據 src\fasttext.cc(251): warning C4244: “初始化”: 從“int64_t”轉換到“int32_t” ,可能丟失數據 src\fasttext.cc(288): warning C4018: “<”: 有符號/無符號不匹配 src\fasttext.cc(289): warning C4267: “參數”: 從“size_t”轉換到“int32_t”,可 能丟失數據 src\fasttext.cc(331): warning C4267: “參數”: 從“size_t”轉換到“int”,可能丟 失數據 src\fasttext.cc(386): warning C4267: “+=”: 從“size_t”轉換到“int32_t”,可能 丟失數據 src\fasttext.cc(387): warning C4267: “+=”: 從“size_t”轉換到“int32_t”,可能 丟失數據 src\fasttext.cc(452): warning C4244: “參數”: 從“double”轉換到“fasttext::rea l”,可能丟失數據 src\fasttext.cc(465): warning C4244: “參數”: 從“double”轉換到“fasttext::rea l”,可能丟失數據 src\fasttext.cc(471): warning C4244: “參數”: 從“double”轉換到“fasttext::rea l”,可能丟失數據 src\fasttext.cc(502): warning C4244: “參數”: 從“double”轉換到“fasttext::rea l”,可能丟失數據 src\fasttext.cc(584): warning C4244: “初始化”: 從“double”轉換到“fasttext::r eal”,可能丟失數據 src\fasttext.cc(622): warning C4018: “<”: 有符號/無符號不匹配 src\fasttext.cc(627): warning C4018: “<”: 有符號/無符號不匹配 src\fasttext.cc(636): warning C4244: “參數”: 從“double”轉換到“fasttext::rea l”,可能丟失數據 src\fasttext.cc(638): warning C4018: “<”: 有符號/無符號不匹配 src\fasttext.cc(641): warning C4018: “<”: 有符號/無符號不匹配 src\fasttext.cc(666): warning C4244: “參數”: 從“double”轉換到“fasttext::rea l”,可能丟失數據 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\memory(901): warn ing C4267: “參數”: 從“size_t”轉換到“int32_t”,可能丟失數據 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\memory(971): note : 參見對正在編譯的函數 模板 實例化“std::_Ref_count_obj<_Ty>::_Ref_count_obj<fas ttext::Matrix&,const size_t&,const bool&>(fasttext::Matrix &,const size_t &,cons t bool &)”的引用 with [ _Ty=fasttext::QMatrix ] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\memory(971): note : 參見對正在編譯的函數 模板 實例化“std::_Ref_count_obj<_Ty>::_Ref_count_obj<fas ttext::Matrix&,const size_t&,const bool&>(fasttext::Matrix &,const size_t &,cons t bool &)”的引用 with [ _Ty=fasttext::QMatrix ] src\fasttext.cc(308): note: 參見對正在編譯的函數 模板 實例化“std::shared_ptr<fa sttext::QMatrix> std::make_shared<fasttext::QMatrix,_Ty&,const size_t&,const boo l&>(_Ty &,const size_t &,const bool &)”的引用 with [ _Ty=fasttext::Matrix ] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c / nologo /Ox /W3 /GL /DNDEBUG /MD -Iinclude -Iinclude -Isrc -IC:\Users\L\Anaconda3 \include -IC:\Users\L\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visu al Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14. 0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.1439 3.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\um" "-IC:\Progra m Files (x86)\Windows Kits\10\include\10.0.14393.0\winrt" /EHsc /Tpsrc\main.cc / Fobuild\temp.win-amd64-3.6\Release\src\main.obj /EHsc /DVERSION_INFO=\"0.8.22\" main.cc c:\users\l\anaconda3\lib\fasttext-master\src\productquantizer.h(31): warning C43 05: “初始化”: 從“double”到“const fasttext::real”截斷 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c / nologo /Ox /W3 /GL /DNDEBUG /MD -Iinclude -Iinclude -Isrc -IC:\Users\L\Anaconda3 \include -IC:\Users\L\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visu al Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14. 0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.1439 3.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\um" "-IC:\Progra m Files (x86)\Windows Kits\10\include\10.0.14393.0\winrt" /EHsc /Tpsrc\matrix.cc /Fobuild\temp.win-amd64-3.6\Release\src\matrix.obj /EHsc /DVERSION_INFO=\"0.8.2 2\" matrix.cc src\matrix.cc(33): warning C4244: “=”: 從“double”轉換到“float”,可能丟失數 據 src\matrix.cc(98): warning C4244: “return”: 從“double”轉換到“fasttext::real ”,可能丟失數據 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xutility(2766): w arning C4244: “=”: 從“const double”轉換到“float”,可能丟失數據 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xutility(2780): n ote: 參見對正在編譯的函數 模板 實例化“void std::_Fill_unchecked1<_FwdIt,_Ty>(_F wdIt,_FwdIt,const _Ty &,std::false_type)”的引用 with [ _FwdIt=float *, _Ty=double ] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xutility(2788): n ote: 參見對正在編譯的函數 模板 實例化“void std::_Fill_unchecked<float*,_Ty>(_Fw dIt,_FwdIt,const _Ty &)”的引用 with [ _Ty=double, _FwdIt=float * ] src\matrix.cc(26): note: 參見對正在編譯的函數 模板 實例化“void std::fill<std::_ Vector_iterator<std::_Vector_val<std::_Simple_types<float>>>,double>(_FwdIt,_Fwd It,const _Ty &)”的引用 with [ _FwdIt=std::_Vector_iterator<std::_Vector_val<std::_Simple_types<flo at>>>, _Ty=double ] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c / nologo /Ox /W3 /GL /DNDEBUG /MD -Iinclude -Iinclude -Isrc -IC:\Users\L\Anaconda3 \include -IC:\Users\L\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visu al Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14. 0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.1439 3.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\um" "-IC:\Progra m Files (x86)\Windows Kits\10\include\10.0.14393.0\winrt" /EHsc /Tpsrc\model.cc /Fobuild\temp.win-amd64-3.6\Release\src\model.obj /EHsc /DVERSION_INFO=\"0.8.22\ " model.cc c:\users\l\anaconda3\lib\fasttext-master\src\productquantizer.h(31): warning C43 05: “初始化”: 從“double”到“const fasttext::real”截斷 src\model.cc(36): warning C4244: “=”: 從“int64_t”轉換到“int32_t”,可能丟失 數據 src\model.cc(52): warning C4244: “=”: 從“int64_t”轉換到“int32_t”,可能丟失 數據 src\model.cc(64): warning C4244: “參數”: 從“double”轉換到“fasttext::real” ,可能丟失數據 src\model.cc(119): warning C4244: “初始化”: 從“double”轉換到“fasttext::real ”,可能丟失數據 src\model.cc(137): warning C4244: “參數”: 從“double”轉換到“fasttext::real” ,可能丟失數據 src\model.cc(218): warning C4244: “=”: 從“double”轉換到“fasttext::real”, 可能丟失數據 src\model.cc(220): warning C4244: “參數”: 從“double”轉換到“fasttext::real” ,可能丟失數據 src\model.cc(239): warning C4244: “參數”: 從“double”轉換到“fasttext::real” ,可能丟失數據 src\model.cc(259): warning C4244: “+=”: 從“double”轉換到“fasttext::real”, 可能丟失數據 src\model.cc(262): warning C4244: “初始化”: 從“double”轉換到“fasttext::real ”,可能丟失數據 src\model.cc(264): warning C4267: “參數”: 從“size_t”轉換到“const int”,可 能丟失數據 src\model.cc(285): warning C4244: “=”: 從“double”轉換到“int64_t”,可能丟失 數據 src\model.cc(330): warning C4244: “參數”: 從“double”轉換到“float”,可能丟 失數據 src\model.cc(336): warning C4244: “初始化”: 從“double”轉換到“fasttext::real ”,可能丟失數據 src\model.cc(350): warning C4244: “return”: 從“double”轉換到“fasttext::real ”,可能丟失數據 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c / nologo /Ox /W3 /GL /DNDEBUG /MD -Iinclude -Iinclude -Isrc -IC:\Users\L\Anaconda3 \include -IC:\Users\L\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visu al Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14. 0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.1439 3.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\um" "-IC:\Progra m Files (x86)\Windows Kits\10\include\10.0.14393.0\winrt" /EHsc /Tpsrc\productqu antizer.cc /Fobuild\temp.win-amd64-3.6\Release\src\productquantizer.obj /EHsc /D VERSION_INFO=\"0.8.22\" productquantizer.cc c:\users\l\anaconda3\lib\fasttext-master\src\productquantizer.h(31): warning C43 05: “初始化”: 從“double”到“const fasttext::real”截斷 src\productquantizer.cc(132): error C2039: “to_string”: 不是“std”的成員 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\numeric(12): note : 參見“std”的聲明 src\productquantizer.cc(132): error C3861: “to_string”: 找不到標識符 src\productquantizer.cc(132): error C2512: “std::invalid_argument”: 沒有合適的 默認構造函數可用 src\productquantizer.cc(132): note: 無構造函數可以接受源類型,或構造函數重載決策 不明確 error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\ x86_amd64\\cl.exe' failed with exit status 2
已經失去耐心的情況下,直接pip search fasttext
發現居然就有現成的fasttext!!!可以直接安裝pip install fasttext
ok
之前的記錄算是踩坑吧,如果幫到其他其他人,就算沒白寫。
至於無法通過setup.py安裝問題,有人懂的可以留言。如果也不懂的,建議直接pip安裝吧