久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

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

 獨坐青松上 2019-11-04

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

1,、pip (推薦)
2、easy_install
3,、

常見的安裝包格式:

1,、whl (推薦,一種二進制的)
2,、tar.gz
3、zip
4,、egg(第一個主流打包格式)
whl和egg文件直接將后綴名改為zip,,可以作為zip解壓

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

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

安裝:

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

命令如下:

 python  build
 python  install

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

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

缺點:

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

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

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

卸載

記錄安裝后文件的路徑
python  install --record files.txt

刪除這些文件 
cat files.txt | xargs rm -rf  

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

easy_install

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

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

但是還是可以提一下:

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

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

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

python easy_install.py

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

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,,先解壓,,然后進入
 easy_install .

卸載

easy_install -m pip

升級

easy_install --upgrade pip

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

pip

使用

# 安裝
pip install package

# 卸載
pip uninstall package

# 查看所安裝的包
pip list

# 搜索包
pip search package

# 更新
pip install -U package

# 重定向輸出項目使用的庫到 requirements.txt文件內(nèi)
pip freeze > requirements.txt

#在其他環(huán)境上安裝項目的依賴
pip install -r requirements.txt

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

批量安裝

有的時候你會發(fā)現(xiàn)在沒有網(wǎng)絡(luò)的時候,你想要安裝wheel文件,,直接pip會出錯,,這里有一種辦法,并且可以批量,,就是利用requirements.txt文件,。但是,這之前我們還要知道,,我們之所以安裝wheel文件會失敗,,是因為本機的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代表卸載時不詢問是否刪除,即yes的意思,,可以省略,,但在腳本里的時候還是加上。

wheel

1,、wheel 包的命名格式

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

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

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

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

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

  • abi tag

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

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

如果打包時沒辦法判斷 abi 類型,,生成的 abi tag 會是 none,。而如果 Python 包是不依賴特定的 abi 的純 Python 實現(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這個庫,在官網(wǎng)里找到它發(fā)現(xiàn)五花八門,,當(dāng)時不知道要下哪一個,,后來才找到那個查看版本的命令。
grpcio
可以看到,,就截圖內(nèi)的就有涉及到大概八種不同的系統(tǒng)及版本,,根據(jù)命令查看whl版本,發(fā)現(xiàn)支持manylinux1_x86_84版本,,原因是我當(dāng)時用的是centos7,,并且安裝的時候是安裝的最小(Mini)的形式,,因此我下了manylinux1_x86_84的其中一個,。

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格式
可以看到,,這是一個由多組元組組成的列表,,這里面的三個東西有沒有感覺很眼熟,我們再看wheel文件的名稱組成,,例如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)下載源有時候會比較慢,,我們可以指定源

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

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

第三方庫下載地址

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

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

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

python -m pip install -U setuptools

報錯:

No module named pip

解決辦法:

python -m ensurepip 

離線安裝前查看某個指定的包的所有依賴項

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

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

conda info package_name python=3.5

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

conda search package_name  --info [--offline]

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

pip show package_name

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

conda

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

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

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

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

virtualenv

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

# 安裝(python2)
pip install virtualenv

# 創(chuàng)建虛擬環(huán)境,,需要預(yù)先創(chuàng)建一個目錄
virtualenv venv_name

# Windows激活虛擬環(huán)境
#1,、進入虛擬環(huán)境所在目錄下的Scripts目錄
cd venv_name/Scripts

# 2、激活
activate

# 3,、退出,,linux同
deactivate

# linux進入并激活虛擬環(huán)境目錄
source venv_name/bin/activate

參考文檔

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

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多