欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

windows下安裝python的C擴(kuò)展編譯環(huán)境(解決Unable to find vcvarsall.bat)

 更新時(shí)間:2018年02月21日 23:27:26   作者:登高行遠(yuǎn)  
這篇文章主要介紹了windows下安裝python的C擴(kuò)展編譯環(huán)境(解決Unable to find vcvarsall.bat),需要的朋友可以參考下

N久沒(méi)有開(kāi)始寫(xiě)博客了,總覺(jué)得要隨便記點(diǎn)東西,歲月蹉跎,曾經(jīng)搞得一些東西、技術(shù)、工具,說(shuō)丟也就丟了,點(diǎn)點(diǎn)滴滴還是要記錄一下吧。。。

   在windows下使用pip安裝一些python的第三方庫(kù),有很多使用C寫(xiě)了一些擴(kuò)展,需要使用VC++ Compiler 來(lái)編譯安裝(也可使用MInGW,一般不推薦),否則就會(huì)出現(xiàn)“Unable to find vcvarsall.bat”。像Python2.7就需要使用VS2008 C++ compiler , 而python3至python3.4 (python3.5 將采用VS2015)采用VS2010 編譯生成。但是,凡安裝過(guò)VS這個(gè)巨無(wú)霸的臃腫IDE的都知道,附帶捆綁一大堆你不知道有沒(méi)有用的Microsoft 的插件,占據(jù)大量的C盤(pán)空間,啟動(dòng)又慢,雖然IDE的界面功能勉強(qiáng)過(guò)得去。如果電腦配置一般的話(huà),這東西就搞得N個(gè)卡,一般不做相關(guān)開(kāi)發(fā)的,就沒(méi)必要去安裝整個(gè)VS。 對(duì)于Python 2.7 來(lái)說(shuō),微軟還算有良心,直接推出了Microsoft Visual C++ Compiler for Python 2.7,下載直接安裝即可。然后,在開(kāi)始菜單-》所有程序里面,找到對(duì)應(yīng)的目錄,根據(jù)的你的平臺(tái)和python版本(選x86或x64)點(diǎn)擊對(duì)應(yīng)的Command Prompt運(yùn)行。 這個(gè)cmd窗口里面,可以輸入set命令查看一下環(huán)境變量,發(fā)現(xiàn),已經(jīng)設(shè)置好了INCLUDE=, PATH=, LIB=, and LIBPATH=這幾個(gè)參數(shù),于是直接輸入

pip install numpy

就可安裝編譯對(duì)應(yīng)的第三方模塊、庫(kù)了,有時(shí)編譯過(guò)程比較漫長(zhǎng), 需耐心等待。

    而對(duì)python3 來(lái)說(shuō), 則沒(méi)有這么方便了,由于我的Python3.4 是64位,顯然直接用VS2010 Express也不行了,因?yàn)樗J(rèn)只有x86版本的,沒(méi)有64位的。參考一下Stackoverflow中一篇問(wèn)答:

       Python PIP has issues with path for MS Visual Studio 2010 Express for 64-bit install on Windows 7

    根據(jù)上面提出的建議,我在本機(jī)上得到對(duì)應(yīng)解決方案。先安裝VS2010 Express ,然后再安裝windows SDK 7.1  ,最后也要安裝一個(gè)64位compiler的補(bǔ)??;

       Microsoft SDK 7.1 (Windows 7) 

       VC-Compiler-KB2519277

     PS:在安裝SDK 7.1 之前,請(qǐng)先卸載 VC redistribute 2010 相關(guān)(包括X86 和 X64)組件包,否則安裝報(bào)錯(cuò)。

    完成上述步驟之后,基本的MSVC的編譯環(huán)境(包含x64)就已經(jīng)配置好了,但是如果你在以后編譯項(xiàng)目的時(shí)候,比如在構(gòu)建Qt5項(xiàng)目時(shí),會(huì)出現(xiàn)出現(xiàn)以下錯(cuò)誤:

     c:\program files (x86)\microsoft visual studio 10.0\vc\include\intrin.h(26): fatal error C1083: Cannot open include file: 'ammintrin.h': No such file or directory

    此時(shí)則可以到網(wǎng)上下載對(duì)應(yīng) ammintrin.h ,放到 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\目錄下即可,可在下面的這篇百度文庫(kù)里下載:

  ammintrin.h頭文件,Windows SDK 7.1安裝KB2519277補(bǔ)丁后必備

    安裝完畢之后,在開(kāi)始菜單里面,找到“Windows SDK 7.1 Command Prompt”, 點(diǎn)擊運(yùn)行,在shell下可以通過(guò)SetEnv 來(lái)設(shè)置對(duì)應(yīng)的編譯環(huán)境,如下圖:

設(shè)置“setenv /x64” 之后,即可在64位編譯環(huán)境下pip install 對(duì)應(yīng)的包。

到了這里,可能需要提一下,搭建好環(huán)境后,分別在python 2.7 和 python 3.4 里面安裝numpy,發(fā)現(xiàn)py2沒(méi)問(wèn)題,py3卻安裝編譯link失?。ㄖ岸荚谔摂M機(jī)里面測(cè)試了一下,py3安裝是沒(méi)問(wèn)題的),這是為何呢? 請(qǐng)對(duì)比一下下面兩幅圖:

顯然py2安裝的時(shí)候,link命令行下的libpath使用“”引起來(lái)了,所以路徑有空格不會(huì)把參數(shù)隔斷,而py3就沒(méi)這么細(xì)致了,不知道是pip、setuptools調(diào)用cmd命令的缺心眼,還是distutils里面的bug,反正py3的安裝路徑不能有空格。于是調(diào)整了一下python3的安裝路徑,也就是不含空格,就編譯成功了。

  當(dāng)然這只是搭建好了VC++ 的編譯環(huán)境,對(duì)于像SciPy這樣的數(shù)值計(jì)算庫(kù),安裝的話(huà)需要Fortran的編譯器。顯然windows下的編譯安裝遠(yuǎn)沒(méi)有l(wèi)inux下的簡(jiǎn)單方便(除了包名不好記,包依賴(lài)比較麻煩),gcc、gfortran現(xiàn)成的,apt-get 里面也有現(xiàn)成的。 所以在windows下開(kāi)發(fā)測(cè)試的話(huà),可以直接在這個(gè)加州大學(xué)爾灣分校(UCI)提供的大量已編譯打包好的針對(duì)windows的wheel安裝包,上面有Numpy、SciPy、matplotlib等等數(shù)值分析、科學(xué)計(jì)算的模塊庫(kù),并且還都是 MKL 版的。下載對(duì)應(yīng)的版本,直接用“pip install xxxx.whl”即可完成安裝,whl文件其實(shí)就跟zip文件一樣,打包壓縮一下而已,你也直接用壓縮軟件解開(kāi),將其放到對(duì)應(yīng)的Lib/site-packages目錄下即可。Of course,你也可以使用 Anaconda 這樣的python定制環(huán)境版本,里面已將上面的包直接集成了,包括像IPython這么好用的REPL工具,以及conda 包管理。

相關(guān)文章

  • 運(yùn)用python去除圖片水印

    運(yùn)用python去除圖片水印

    本文介紹了如何運(yùn)用python去除圖片的水印,文中使用圖片以及代碼詳細(xì)的介紹了兩種去除的方法,感興趣的朋友可以自己參考一下
    2021-08-08
  • Python編程實(shí)現(xiàn)正則刪除命令功能

    Python編程實(shí)現(xiàn)正則刪除命令功能

    這篇文章主要介紹了Python編程實(shí)現(xiàn)正則刪除命令功能,涉及Python針對(duì)文件與目錄的正則匹配、刪除等相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • python機(jī)器學(xué)習(xí)實(shí)戰(zhàn)之最近鄰kNN分類(lèi)器

    python機(jī)器學(xué)習(xí)實(shí)戰(zhàn)之最近鄰kNN分類(lèi)器

    這篇文章主要介紹了python機(jī)器學(xué)習(xí)實(shí)戰(zhàn)之最近鄰kNN分類(lèi)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Python?IDLE設(shè)置清屏快捷鍵的方法詳解

    Python?IDLE設(shè)置清屏快捷鍵的方法詳解

    這篇文章主要為大家詳細(xì)介紹了Python?IDLE設(shè)置清屏快捷鍵的方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的可以了解一下
    2022-09-09
  • json-server?如何快速搭建REST?API?服務(wù)器

    json-server?如何快速搭建REST?API?服務(wù)器

    json-server 是一個(gè)非常流行的開(kāi)源工具,用于快速搭建一個(gè)完整的 REST API 服務(wù)器,它使用 JSON 文件作為數(shù)據(jù)源,通過(guò)簡(jiǎn)單的配置即可模擬復(fù)雜的服務(wù)器功能,這篇文章主要介紹了json-server如何快速搭建REST API服務(wù)器,需要的朋友可以參考下
    2017-10-10
  • Python3.5實(shí)現(xiàn)的羅馬數(shù)字轉(zhuǎn)換成整數(shù)功能示例

    Python3.5實(shí)現(xiàn)的羅馬數(shù)字轉(zhuǎn)換成整數(shù)功能示例

    這篇文章主要介紹了Python3.5實(shí)現(xiàn)的羅馬數(shù)字轉(zhuǎn)換成整數(shù)功能,涉及Python字符串遍歷與數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • Python基于Socket實(shí)現(xiàn)簡(jiǎn)易多人聊天室的示例代碼

    Python基于Socket實(shí)現(xiàn)簡(jiǎn)易多人聊天室的示例代碼

    這篇文章主要介紹了Python基于Socket實(shí)現(xiàn)簡(jiǎn)易多人聊天室的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • opencv-python圖像處理安裝與基本操作方法

    opencv-python圖像處理安裝與基本操作方法

    OpenCV是一個(gè)C++庫(kù),目前流行的計(jì)算機(jī)視覺(jué)編程庫(kù),用于實(shí)時(shí)處理計(jì)算機(jī)視覺(jué)方面的問(wèn)題,它涵蓋了很多計(jì)算機(jī)視覺(jué)領(lǐng)域的模塊。在Python中常使用OpenCV庫(kù)實(shí)現(xiàn)圖像處理。本文介紹opencv-python圖像處理安裝與基本操作,感興趣的朋友一起看看吧
    2022-01-01
  • python實(shí)現(xiàn)數(shù)據(jù)圖表

    python實(shí)現(xiàn)數(shù)據(jù)圖表

    plotly是現(xiàn)代平臺(tái)的敏捷商業(yè)智能和數(shù)據(jù)科學(xué)庫(kù),它作為一款開(kāi)源的繪圖庫(kù),可以應(yīng)用于Python、R、MATLAB、Excel、JavaScript和jupyter等多種語(yǔ)言,主要使用的js進(jìn)行圖形繪制,實(shí)現(xiàn)過(guò)程中主要就是調(diào)用plotly的函數(shù)接口,底層實(shí)現(xiàn)完全被隱藏,便于初學(xué)者的掌握。
    2017-07-07
  • python基礎(chǔ)之爬蟲(chóng)入門(mén)

    python基礎(chǔ)之爬蟲(chóng)入門(mén)

    這篇文章主要介紹了python基礎(chǔ)之爬蟲(chóng)入門(mén),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python爬蟲(chóng)的小伙伴們有很好地幫助喲,需要的朋友可以參考下
    2021-05-05

最新評(píng)論