<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Python安裝第三方庫攻略(pip和Anaconda)

       


      常用的python第三方庫安裝工具大概有三種:

       

      1、pip (推薦)
      2、easy_install
      3、setup.py

      常見的安裝包格式:

      1、whl (推薦,一種二進(jìn)制的)
      2、tar.gz
      3、zip
      4、egg(第一個(gè)主流打包格式)
      whl和egg文件可以直接將后綴名改為zip,作為zip解壓,但在有網(wǎng)的模式下,whl不必解壓,用pip的安裝命令即可

      setup.py

      setup.py常用于源碼安裝,由于pypi官網(wǎng)下載包非常慢,因此有人會(huì)選擇下載后安裝,也有人會(huì)去GitHub上下載源碼來安裝,setup.py常被用與后者。

      一般GitHub上的源碼大多為zip、tar.gz、tar.zip、 tar.bz2這類壓縮文件,而它們往往自帶setup.py文件。

      安裝:

      1、下載zip并解壓;
      2、打開cmd,進(jìn)入解壓后的路徑;
      3、依次執(zhí)行以下代碼

      命令如下:

       python setup.py build
       python setup.py install
      

      Windows的安裝包存放的路徑為:python安裝路徑下的\Lib\site-packages。

      Linux的路徑應(yīng)該為: /usr/lib/python2.7/site-packages。 (路徑不一定,視情況而定,有的可能在/usr/local/lib)

      缺點(diǎn):

      但是這種安裝方法有一種非常大的毛病,就是使用該方法安裝的包,無法通過pip uninstall卸載干凈。

      需要手動(dòng)到/usr/bin/python2.7/site-package(其中python處為對(duì)應(yīng)的Python版本)目錄下刪除。對(duì)于類UNIX系統(tǒng)來說,64位機(jī)更麻煩的是,在/usr目錄下分為lib和lib64,這兩個(gè)目錄下都會(huì)有。

      網(wǎng)上有卸載方法,但我試過不太奏效:

      卸載

      記錄安裝后文件的路徑
      python setup.py install --record files.txt
      
      刪除這些文件 
      cat files.txt | xargs rm -rf  
      

      一般情況下其實(shí)不建議使用這種,pip其實(shí)也是可以直接安裝壓縮包的,后面會(huì)講。

      easy_install

      實(shí)際上,在Python中安裝第三方模塊,是通過setuptools這個(gè)工具完成的。而easy_install和pip是封裝了setuptools的兩個(gè)包管理工具。

      我們要使用easy_install,首先需要setuptools,當(dāng)然,現(xiàn)在的版本里都自帶了,python3.6以后的略微有點(diǎn)不一樣,后面會(huì)講。

      但是還是可以提一下:

      1、打開官網(wǎng) http://pypi.python.org/pypi/setuptools ,目前最新版的只有whl和zip兩種格式(以前是有exe的,現(xiàn)在似乎沒有了,但我感覺現(xiàn)在更方便一點(diǎn))。

      但是whl前提是要用pip安裝,而pip有的時(shí)候,我們可能需要使用easy_install才能安裝,有pip我們也不怎么用easy_install了,所以我們只能下載zip。

      2、下載后解壓,會(huì)發(fā)現(xiàn)里面有easy_install.py和setup.py,可以直接使用。
      如果是exe,安裝后雙擊 ez_setup.py安裝,或在cmd執(zhí)行命令:

      python easy_install.py
      

      安裝好easy_install之后就可以用來安裝包了,但是建議將easy_install所在路徑加入環(huán)境變量PATH,否則每次安裝包都需要先進(jìn)入該路徑。

      Windows的easy_install路徑為:Python下的Scripts目錄
      Linux的路徑應(yīng)該為: /usr/local/bin。 (路徑不一定,視情況而定)

      easy_install的使用方法,如安裝pip,直接在后面加上包名即可:

      # 指定包名
       easy_install pip
       
       # 指定網(wǎng)址
       easy_install -f *.html pip
       
       # 安裝tar/egg
       easy_install  package.tar/egg
       
       # 安裝zip,先解壓,然后進(jìn)入
       easy_install .
      

      卸載

      easy_install -m pip
      

      升級(jí)

      easy_install --upgrade pip
      

      使用教程:
      http://peak.telecommunity.com/DevCenter/EasyInstall#downloading-and-installing-a-package

      pip

      使用

      # 安裝
      pip install package
      
      # 卸載
      pip uninstall package
      
      # 查看所安裝的包
      pip list
      
      # 搜索包
      pip search package
      
      # 更新
      pip install -U package
      
      # 重定向輸出項(xiàng)目使用的庫到 requirements.txt文件內(nèi)
      pip freeze > requirements.txt
      
      #在其他環(huán)境上安裝項(xiàng)目的依賴
      pip install -r requirements.txt
      

      安裝tar.gz和zip使用pip是最簡單的,不需要解壓,前兩種還需要解壓。

      批量安裝

      有的時(shí)候你會(huì)發(fā)現(xiàn)在沒有網(wǎng)絡(luò)的時(shí)候,你想要安裝wheel文件,直接pip會(huì)出錯(cuò),這里有一種辦法,并且可以批量,就是利用requirements.txt文件。但是,這之前我們還要知道,我們之所以安裝wheel文件會(huì)失敗,是因?yàn)楸緳C(jī)的python不支持下載的whl文件。

      1、我們將所有包下好,包括whl、tar.gz等。
      2、然后將包的版本寫入requirements.txt,并將它們放在一起。
      3、可以直接執(zhí)行命令,也可以將該命令寫入腳本。

      命令如下:

      pip install --use-wheel --no-index --find-links=./ -r requirements.txt
      

      批量卸載

      pip uninstall -y -r requirements.txt
      

      其中-y代表卸載時(shí)不詢問是否刪除,即yes的意思,可以省略,但在腳本里的時(shí)候還是加上。

      wheel

      1、wheel 包的命名格式

       {distribution}-{version}(-{build tag})?-{python tag}-{abi tag}-{platform tag}.whl
      

      前兩個(gè)分別代表包名和版本,前面查看wheel版本輸出的三元素元組分別代表{python tag}-{abi tag}-{platform tag}。

      • python-tag —— python實(shí)現(xiàn),主要分為五種:

      py - 無實(shí)現(xiàn)特定的拓展
      cp - CPython,也就是通常使用的 Python 實(shí)現(xiàn)
      ip - IronPython,跑在 Windows CLI 平臺(tái)上的 Python 實(shí)現(xiàn)
      pp - PyPy,帶 JIT 的 Python 實(shí)現(xiàn)
      jy - Jython,跑在 JVM 上的 Python 實(shí)現(xiàn)

      如request的whl名字里的py2和py3分別代表支持py2.x和py3.x,兩個(gè)同時(shí)存在則代表兩個(gè)版本都支持,以“.”分隔。

      • abi tag

      說實(shí)話,我沒太看懂這是個(gè)什么東西,只大概知道分為以下幾種:

      with-pydebug (flag: d ) ——看起來像是用于debug的
      with-pymalloc (flag: m ) —— 一個(gè)專門的對(duì)象分配器
      with-wide-unicode (flag: u ) —— 默認(rèn)開啟的
      none —— 不區(qū)分

      如果打包時(shí)沒辦法判斷 abi 類型,生成的 abi tag 會(huì)是 none。而如果 Python 包是不依賴特定的 abi 的純 Python 實(shí)現(xiàn),生成的 abi tag 也是 none。

      大部分我們下載的的是類似mu結(jié)尾的,如cp27mu。

      • platform tag —— 系統(tǒng)

      win32 —— Windows32位
      win_amd64 —— Windows64位
      linux_i386 —— Linux32位
      linux_x86_64 —— Linux64位
      any —— 任意

      當(dāng)然,遠(yuǎn)不止這些,我曾經(jīng)裝過grpcio這個(gè)庫,在官網(wǎng)里找到它發(fā)現(xiàn)五花八門,當(dāng)時(shí)不知道要下哪一個(gè),后來才找到那個(gè)查看版本的命令。
      grpcio
      可以看到,就截圖內(nèi)的就有涉及到大概八種不同的系統(tǒng)及版本,根據(jù)命令查看whl版本,發(fā)現(xiàn)支持manylinux1_x86_84版本,原因是我當(dāng)時(shí)用的是centos7,并且安裝的時(shí)候是安裝的最小(Mini)的形式,因此我下了manylinux1_x86_84的其中一個(gè)。

      2、python環(huán)境支持哪種wheel文件

      pip10以下的版本查看:

      >>> import pip
      >>> print(pip.pep425tags.get_supported())
      

      pip10以上的版本查看:

      >>> import pip._internal; 
      >>> print(pip._internal.pep425tags.get_supported())
      

      可以看到如圖:
      python支持的whl格式
      可以看到,這是一個(gè)由多組元組組成的列表,這里面的三個(gè)東西有沒有感覺很眼熟,我們?cè)倏磜heel文件的名稱組成,例如requests:

      requests-2.22.0-py2.py3-none-any.whl 
      

      再如

      grpcio-1.21.1-cp27-cp27m-manylinux1_x86_64.whl
      

      當(dāng)然,后者在Windows上的Python里執(zhí)行是不可能看到的。

      下載源

      國內(nèi)pypi官網(wǎng)下載源有時(shí)候會(huì)比較慢,我們可以指定源

      pip install package -i http://pypi.douban.com/simple --trusted-host pypi.douban.compipy
      

      國內(nèi)鏡像目前有:

      • 豆瓣 http://pypi.douban.com/simple/
      • 阿里云 http://mirrors.aliyun.com/pypi/simple/
      • 中國科技大學(xué) https://pypi.mirrors.ustc.edu.cn/simple/
      • 清華大學(xué) https://pypi.tuna.tsinghua.edu.cn/simple/
      • 華中理工大學(xué) http://pypi.hustunique.com/
      • 山東理工大學(xué) http://pypi.sdutlinux.org/

      第三方庫下載地址

      1、https://pypi.org (官方)
      2、https://www.lfd.uci.edu/~gohlke/pythonlibs/(很多官網(wǎng)沒有的這里有)

      python3.6前后的版本pip安裝方式的不同

      Python3.6和之前的版本(包括2.x和3.6之前的3.x)有一個(gè)很大的區(qū)別,安裝完之后Scripts目錄為空,當(dāng)我們想執(zhí)行更新pip時(shí)出錯(cuò):

      python -m pip install -U setuptools
      

      報(bào)錯(cuò):

      No module named pip
      

      解決辦法:

      python -m ensurepip 
      

      離線安裝前查看某個(gè)指定的包的所有依賴項(xiàng)

      我們有的時(shí)候開發(fā)環(huán)境分內(nèi)外網(wǎng),但是又不得不安裝一些第三方庫,需要去外網(wǎng)下載好wheel拷到內(nèi)網(wǎng),而這些第三方庫往往依賴于其他包。如果你在內(nèi)網(wǎng)試,每次一個(gè)沒有又要去外網(wǎng)重新下了拷進(jìn)來,不勝其煩。

      而conda有一個(gè)非常棒的功能,就是可以查看某個(gè)python版本的某個(gè)庫的所有依賴項(xiàng)及其對(duì)應(yīng)的版本,如下,指定查看3.5的某個(gè)包的所有依賴,較老版本的命令是這樣的:

      conda info package_name python=3.5
      

      新版本的命令(可離線查看),沒研究出來怎么指定python版本:

      conda search package_name  --info [--offline]
      

      其實(shí)pip也有,但只能顯示相關(guān)依賴包,但不能顯示具體對(duì)應(yīng)的版本:

      pip show package_name
      

      可查看:https://cloud.tencent.com/developer/ask/145565

      conda

      我16年接觸python的時(shí)候,學(xué)爬蟲被安裝第三方庫折騰的差點(diǎn)放棄,尤其是Scrapy框架,后來一陣摸索好不容易發(fā)現(xiàn)了Anaconda這么個(gè)好東西。

      Anaconda是個(gè)集成環(huán)境,里面有大量的常用第三方庫以及科學(xué)計(jì)算相關(guān)的包,感覺起來裝任何包都很輕易,沒有再為包的事情煩心過,里面的命令是conda,和pip類似,但不僅pip,還有虛擬環(huán)境的作用。命令也類似,只要把pip替換為conda即可,但也可以使用pip命令。

      如果想將py2和py3的Anaconda裝在一起,只要把其中一個(gè)安裝在另一個(gè)已經(jīng)裝好的envs路徑下即可。

      conda具體命令查看:
      https://conda.io/projects/conda/en/latest/commands.html#

      virtualenv

      對(duì)于安裝包,如果覺得怎么都安裝不上,使用虛擬環(huán)境也是個(gè)很不錯(cuò)的選擇,

      # 安裝(python2)
      pip install virtualenv
      
      # 創(chuàng)建虛擬環(huán)境,需要預(yù)先創(chuàng)建一個(gè)目錄
      virtualenv venv_name
      
      # Windows激活虛擬環(huán)境
      #1、進(jìn)入虛擬環(huán)境所在目錄下的Scripts目錄
      cd venv_name/Scripts
      
      # 2、激活
      activate
      
      # 3、退出,linux同
      deactivate
      
      # linux進(jìn)入并激活虛擬環(huán)境目錄
      source venv_name/bin/activate
      

      參考文檔

      1、https://pip.pypa.io/en/stable/reference/
      2、http://www.rzrgm.cn/dtest/p/4507980.html
      3、https://bu-choreography.iteye.com/blog/1113059
      4、http://www.rzrgm.cn/amengduo/p/9586354.html(安裝史)
      5、https://www.python.org/dev/peps/pep-0425/
      6、https://www.python.org/dev/peps/pep-3149/
      7、https://segmentfault.com/a/1190000007591736
      8、https://docs.python.org/2.3/whatsnew/section-pymalloc.html

      posted @ 2019-05-29 19:37  蘇酒酒  閱讀(306)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 亚洲色成人网站www永久四虎| 亚洲av天堂天天天堂色| 少妇人妻系列无码专区视频| 国产精品熟女一区二区三区 | 国产suv精品一区二区五| 本溪| 国产肥臀视频一区二区三区| 亚洲一区二区偷拍精品| 99RE8这里有精品热视频| 免费国产一级特黄aa大片在线| 国产L精品国产亚洲区在线观看| 亚洲性图日本一区二区三区| 亚洲中文字幕在线精品一区| 玩弄放荡人妻少妇系列| 久久久久久曰本av免费免费| 亚洲一区二区国产av| 青青青爽在线视频观看| 国产资源精品中文字幕| 亚洲高清偷拍一区二区三区| 麻豆精品传媒一二三区| 亚洲在av极品无码天堂| 国产性色av高清在线观看| 国产精品三级一区二区三区 | 无码激情亚洲一区| 亚洲夂夂婷婷色拍WW47| 奇米影视7777久久精品| 亚洲综合伊人久久大杳蕉| 亚在线观看免费视频入口| 金寨县| 精品免费看国产一区二区| 蜜臀av性久久久久蜜臀aⅴ麻豆| 亚洲色欲色欲天天天www| 干老熟女干老穴干老女人| 无码国产精品一区二区免费式芒果 | 国产网友愉拍精品视频手机| 国产玩具酱一区二区三区| 国产成人亚洲日韩欧美| 鲁丝片一区二区三区免费| 一区二区三区无码免费看| 仙桃市| 色爱综合另类图片av|