欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

最全的pip使用指南,50%你可能沒用過

所有的 Python 開發(fā)者都清楚,Python 之所以如此受歡迎,能夠在眾多高級語言中,脫穎而出,除了語法簡單,上手容易之外,更多還要?dú)w功于 Python 生態(tài)的完備,有數(shù)以萬計(jì)的 Python 愛好者愿意以 Python 為基礎(chǔ)封裝出各種有利于開發(fā)的第三方工具包。

站在用戶的角度思考問題,與客戶深入溝通,找到龍崗網(wǎng)站設(shè)計(jì)與龍崗網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋龍崗地區(qū)。

這才使用我們能夠以最快的速度開發(fā)出一個(gè)滿足基本需要的項(xiàng)目,而不是每次都重復(fù)造輪子。

Python 從1991年誕生到現(xiàn)在,已經(jīng)過去28個(gè)年頭了,這其間產(chǎn)生了數(shù)以萬計(jì)的第三方包,且每個(gè)包都會(huì)不斷更新,會(huì)有越來越多的版本。

當(dāng)你在一個(gè)復(fù)雜的項(xiàng)目環(huán)境中,如果沒有一個(gè)有效的依賴包管理方案,項(xiàng)目的維護(hù)將會(huì)是一個(gè)大問題。

pip 是官方推薦的包管理工具,在大多數(shù)開發(fā)者眼里,pip 幾乎是 Python 的標(biāo)配。

當(dāng)然也有其他的包管理工具

  • distutils:僅用于打包和安裝,嚴(yán)格來講不算是包管理工具

  • setuptools:distutils的增強(qiáng)版,擴(kuò)展了distutils,提供更多的功能,引入包依賴的管理,easy_install就是它的一個(gè)命令行工具,引入了 egg 的文件格式。

  • Pipenv:一個(gè)集依賴包管理(pip)及虛擬環(huán)境管理(virtualenv)的工具

  • 還有其他的,這里不一一列出。

今天的主角是 pip ,大家肯定不會(huì)陌生。但我相信不少人,只是熟悉幾個(gè)常用的用法,而對于其他幾個(gè)低頻且實(shí)用的用法,卻知之甚少,這兩天,我查閱官方文檔,把這些用法整理了一下,應(yīng)該是網(wǎng)絡(luò)上比較全的介紹。

1. 查詢軟件包

查詢當(dāng)前環(huán)境安裝的所有軟件包

$ pip list

查詢 pypi 上含有某名字的包

$ pip search pkg

查詢當(dāng)前環(huán)境中可升級的包

$ pip list --outdated

查詢一個(gè)包的詳細(xì)內(nèi)容

$ pip show pkg

2. 下載軟件包

在不安裝軟件包的情況下下載軟件包到本地

$ pip download --destination-directory /local/wheels -r requirements.txt

下載完,總歸是要安裝的,可以指定這個(gè)目錄中安裝軟件包,而不從 pypi 上安裝。

$ pip install --no-index --find-links=/local/wheels -r requirements.txt

當(dāng)然你也從你下載的包中,自己構(gòu)建生成 wheel 文件

$ pip install wheel
$ pip wheel --wheel-dir=/local/wheels -r requirements.txt

3. 安裝軟件包

使用 pip install <pkg> 可以很方便地從 pypi 上搜索下載并安裝 python 包。

如下所示

$ pip install requests

這是安裝包的基本格式,我們也可以為其添加更多參數(shù)來實(shí)現(xiàn)不同的效果。

3.1 只從本地安裝,而不從 pypi 安裝

# 前提你得保證你已經(jīng)下載 pkg 包到 /local/wheels 目錄下
$ pip install --no-index --find-links=/local/wheels pkg

3.2 限定版本進(jìn)行軟件包安裝

以下三種,對單個(gè) python 包的版本進(jìn)行了約束

# 所安裝的包的版本為 2.1.2
$ pip install pkg==2.1.2

# 所安裝的包必須大于等于 2.1.2
$ pip install pkg>=2.1.2

# 所安裝的包必須小于等于 2.1.2
$ pip install pkg<=2.1.2

以下命令用于管理/控制整個(gè) python 環(huán)境的包版本

# 導(dǎo)出依賴包列表
pip freeze >requirements.txt

# 從依賴包列表中安裝
pip install -r requirements.txt

# 確保當(dāng)前環(huán)境軟件包的版本(并不確保安裝)
pip install -c constraints.txt

3.3 限制不使用二進(jìn)制包安裝

由于默認(rèn)情況下,wheel 包的平臺(tái)是運(yùn)行 pip download 命令 的平臺(tái),所以可能出現(xiàn)平臺(tái)不適配的情況。

比如在 MacOS 系統(tǒng)下得到的 pymongo-2.8-cp27-none-macosx_10_10_intel.whl 就不能在 linux_x86_64 安裝。

使用下面這條命令下載的是 tar.gz 的包,可以直接使用 pip install 安裝。

比 wheel 包,這種包在安裝時(shí)會(huì)進(jìn)行編譯,所以花費(fèi)的時(shí)間會(huì)長一些。

# 下載非二進(jìn)制的包
$ pip download --no-binary=:all: pkg

# 安裝非二進(jìn)制的包
$ pip install pkg --no-binary

3.4 指定代理服務(wù)器安裝

當(dāng)你身處在一個(gè)內(nèi)網(wǎng)環(huán)境中時(shí),無法直接連接公網(wǎng)。這時(shí)候你使用pip install 安裝包,就會(huì)失敗。

面對這種情況,可以有兩種方法:

  1. 下載離線包拷貝到內(nèi)網(wǎng)機(jī)器中安裝
  2. 使用代理服務(wù)器轉(zhuǎn)發(fā)請求

第一種方法,雖說可行,但有相當(dāng)多的弊端

  • 步驟繁雜,耗時(shí)耗力
  • 無法處理包的依賴問題

這里重點(diǎn)來介紹,第二種方法:

$ pip install --proxy [user:passwd@]http_server_ip:port pkg

每次安裝包就發(fā)輸入長長的參數(shù),未免有些麻煩,為此你可以將其寫入配置文件中:$HOME/.config/pip/pip.conf

對于這個(gè)路徑,說明幾點(diǎn)

  • 不同的操作系統(tǒng),路徑各不相同
# Linux/Unix:
/etc/pip.conf
~/.pip/pip.conf
~/.config/pip/pip.conf

# Mac OSX:
~/Library/Application Support/pip/pip.conf
~/.pip/pip.conf
/Library/Application Support/pip/pip.conf

# Windows:
%APPDATA%\pip\pip.ini
%HOME%\pip\pip.ini
C:\Documents and Settings\All Users\Application Data\PyPA\pip\pip.conf (Windows XP)
C:\ProgramData\PyPA\pip\pip.conf (Windows 7及以后) 
  • 若在你的機(jī)子上沒有此文件,則自行創(chuàng)建即可

如何配置,這邊給個(gè)樣例:

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/ 

# 替換出自己的代理地址,格式為[user:passwd@]proxy.server:port
proxy=http://xxx.xxx.xxx.xxx:8080 

[install]
# 信任阿里云的鏡像源,否則會(huì)有警告
trusted-host=mirrors.aliyun.com 

3.5 安裝用戶私有軟件包

很多人可能還不清楚,python 的安裝包是可以用戶隔離的。

如果你擁有管理員權(quán)限,你可以將包安裝在全局環(huán)境中。在全局環(huán)境中的這個(gè)包可被該機(jī)器上的所有擁有管理員權(quán)限的用戶使用。

如果一臺(tái)機(jī)器上的使用者不只一樣,自私地將在全局環(huán)境中安裝或者升級某個(gè)包,是不負(fù)責(zé)任且危險(xiǎn)的做法。

面對這種情況,我們就想能否安裝單獨(dú)為我所用的包呢?

慶幸的是,還真有。

我能想到的有兩種方法:

  1. 使用虛擬環(huán)境
  2. 將包安裝在用戶的環(huán)境中

虛擬環(huán)境,之前寫過幾篇文章,這里不再展開講。

今天的重點(diǎn)是第二種方法,教你如何安裝用戶私有的包?

命令也很簡單,只要加上 --user 參數(shù),pip 就會(huì)將其安裝在當(dāng)前用戶的 ~/.local/lib/python3.x/site-packages 下,而其他用戶的 python 則不會(huì)受影響。

pip install --user pkg

來舉個(gè)例子

# 在全局環(huán)境中未安裝 requests
[root@localhost ~]# pip list | grep requests   
[root@localhost ~]# su - wangbm
[root@localhost ~]# 

# 由于用戶環(huán)境繼承自全局環(huán)境,這里也未安裝
[wangbm@localhost ~]# pip list | grep requests 
[wangbm@localhost ~]# pip install --user requests  
[wangbm@localhost ~]# pip list | grep requests 
requests (2.22.0)
[wangbm@localhost ~]# 

# 從 Location 屬性可發(fā)現(xiàn) requests 只安裝在當(dāng)前用戶環(huán)境中
[wangbm@ws_compute01 ~]$ pip show requests
---
Metadata-Version: 2.1
Name: requests
Version: 2.22.0
Summary: Python HTTP for Humans.
Home-page: http://python-requests.org
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
Installer: pip
License: Apache 2.0
Location: /home/wangbm/.local/lib/python2.7/site-packages
[wangbm@localhost ~]$ exit
logout

# 退出 wangbm 用戶,在 root 用戶環(huán)境中發(fā)現(xiàn) requests 未安裝
[root@localhost ~]$ pip list | grep requests
[root@localhost ~]$ 

當(dāng)你身處個(gè)人用戶環(huán)境中,python 導(dǎo)包時(shí)會(huì)先檢索當(dāng)前用戶環(huán)境中是否已安裝這個(gè)包,已安裝則優(yōu)先使用,未安裝則使用全局環(huán)境中的包。

驗(yàn)證如下:

>>> import sys
>>> from pprint import pprint 
>>> pprint(sys.path)
['',
 '/usr/lib64/python27.zip',
 '/usr/lib64/python2.7',
 '/usr/lib64/python2.7/plat-linux2',
 '/usr/lib64/python2.7/lib-tk',
 '/usr/lib64/python2.7/lib-old',
 '/usr/lib64/python2.7/lib-dynload',
 '/home/wangbm/.local/lib/python2.7/site-packages',
 '/usr/lib64/python2.7/site-packages',
 '/usr/lib64/python2.7/site-packages/gtk-2.0',
 '/usr/lib/python2.7/site-packages',
 '/usr/lib/python2.7/site-packages/pip-18.1-py2.7.egg',
 '/usr/lib/python2.7/site-packages/lockfile-0.12.2-py2.7.egg']
>>> 

4. 卸載軟件包

就一條命令,不再贅述

$ pip uninstall pkg

5. 升級軟件包

想要對現(xiàn)有的 python 進(jìn)行升級,其本質(zhì)上也是先從 pypi 上下載最新版本的包,再對其進(jìn)行安裝。所以升級也是使用 pip install,只不過要加一個(gè)參數(shù) --upgrade

$ pip install --upgrade pkg

在升級的時(shí)候,其實(shí)還有一個(gè)不怎么用到的選項(xiàng) --upgrade-strategy,它是用來指定升級策略。

它的可選項(xiàng)只有兩個(gè):

  • eager :升級全部依賴包
  • only-if-need:只有當(dāng)舊版本不能適配新的父依賴包時(shí),才會(huì)升級。

在 pip 10.0 版本之后,這個(gè)選項(xiàng)的默認(rèn)值是 only-if-need,因此如下兩種寫法是一互致的。

pip install --upgrade pkg1 
pip install --upgrade pkg1 --upgrade-strategy only-if-need

以上幾乎包含了 pip 的所有常用使用場景,為了方便,我將其整理成一張表格,如果你需要,可×××n編程時(shí)光),后臺(tái)回復(fù)“pip”,可獲取高清無水印圖片。

最全的 pip 使用指南,50% 你可能沒用過


最全的 pip 使用指南,50% 你可能沒用過

分享文章:最全的pip使用指南,50%你可能沒用過
當(dāng)前網(wǎng)址:http://chinadenli.net/article46/jhpdhg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google營銷型網(wǎng)站建設(shè)品牌網(wǎng)站制作搜索引擎優(yōu)化網(wǎng)站維護(hù)靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)