記錄一些python setup.py install東西的時候windows上遇到的坑。

同事給了網址 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上的幫助安裝了pip install pycryptodomepip install --upgrade setuptools依舊無效根據stackoverflow上的幫助下載Visual Studio Community 2017安裝,打開Visual Studio Installer,選使用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
    

這讓我覺得前面的坑更多,網上有說是C的版本問題,但是又不清楚改安裝哪個版本。

已經失去耐心的情況下,直接pip search fasttext發現居然就有現成的fasttext!!!可以直接安裝pip install fasttext ok


之前的記錄算是踩坑吧,如果幫到其他其他人,就算沒白寫。
至於無法通過setup.py安裝問題,有人懂的可以留言。如果也不懂的,建議直接pip安裝吧


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章