一、常用命令
pip 是首選的Python包管理工具,主要用于安裝 PyPI 上托管的軟件包(第三方庫、應用、框架等),用于替代老版的 easy_install 工具。在Python3的開發中應該盡量使用pip,不要繼續使用 easy_install。
從 Python 3.4 開始,Python默認內置了pip (import pip)。,但是你可以執行下面的命令升級pip:
$ pip install -U pip
1、使用 install 命令安裝包:
1.1 安裝PyPI包
$ pip install SomePackage # 安裝最新版本
$ pip install SomePackage==1.0.4 # 安裝指定版本
$ pip install 'SomePackage>=1.0.4' # 指定安裝的最小版本
使用 requirement.txt 需求文件
可以將要安裝的數據包也就是將 install 命令后面的參數都寫入 requirement.txt
文件中,使用 -r
選項一次性全部安裝。requirements.txt 文件的每一行都要表明安裝的內容,而且盡量不要依賴文件中指定包的前后安裝順序。
$ pip install -r requirements.txt
可以將 pip freeze
列出的包寫入到 requirement.txt 文件中,以便在其他系統中安裝。
$ pip freeze > requirements.txt
$ pip install -r requirements.txt
1.2 安裝 wheel 包
wheel本質上是一個 zip 包格式,用于 python 模塊的安裝,它的出現是為了替代 老版本的Eggs。pip也可以直接安裝wheel包。如果發布模塊,推薦使用 wheel 格式。
$ pip install SomePackage-1.0-py2.py3-none-any.whl
1.3 安裝本地包
$ pip install -e . # 項目在當前目錄
$ pip install -e path/to/project # 指定項目的目錄路徑
1.4 從服務器托管的包中安裝
$ pip install -e git+https://git.repo/some_pkg.git#egg=SomePackage # 從git安裝
$ pip install -e svn+svn://svn.repo/some_pkg/trunk/#egg=SomePackage # 從svn安裝
$ pip install -e git+https://git.repo/some_pkg.git@feature#egg=SomePackage # 從一個分支安裝
$ pip install -e "git+https://git.repo/some_repo.git#egg=subdir&subdirectory=subdir_path" # install a python package from a repo subdirectory
從其他的索引中(除了PyPI)安裝:
$ pip install --index-url http://my.package.repo/simple/ SomePackage
在安裝期間搜索其他的索引(除了PyPI):
$ pip install --extra-index-url http://my.package.repo/simple SomePackage
1.5 升級軟件包
pip在升級軟件包之前會自動卸載舊的軟件包
$ pip install -U|--upgrade SomePackage
2、查看安裝的包
2.1 使用 freeze 格式化輸出安裝的包:
$ pip freeze
2.2 使用 list 命令查看安裝的第三方包
$ pip list [--fromat (legacy|columns)]
查看哪些軟件需要更新(列出過時的包):
$ pip list -o|--outdated
2.3 使用 show 命令查看安裝的包的詳細信息:
$ pip show SomePackage
查看安裝包的具體安裝文件
$ pip show -f|--files SomePackage
3、使用 uninstall 命令卸載軟件包
$ pip uninstall Django
也可以像安裝包一樣,將要卸載的包寫入到 uninstall.txt 文件中,然后使用 -r 參數,一次性卸載。
4、使用 download 命令下載軟件包
$ pip download Django
5、使用 search 命令在PyPI倉庫中搜索軟件包
$ pip search Django
6、使用 help 命令查看pip的幫助手冊
$ pip help
也可以訪問官方的站點:
https://pip.pypa.io/en/stable/reference/
二、 配置文件
pip允許你在標準的ini配置文件中設置所有命令選項的默認,配置文件的名稱和路徑,在不同的平臺并不相同,你可能有針對系統的、用戶的以及虛擬環境的配置。
針對系統的配置文件:
在Unix平臺,配置文件的位置可能是 /etc/pip.conf
,或者它可能是環境變量 XDG_CONFIG_DIRS
中設置的路徑 pip 路徑的子目錄 。
針對用戶的配置文件:
在Unix平臺,默認的配置文件是 $HOME/.config/pip/pip.conf
,這個路徑取決于
XDG_CONFIG_HOME
環境變量的值。有一個早些版本使用的位置:$HOME/.pip/pip.conf
,也是可以使用的。
你也可以在環境變量 PIP_CONFIG_FILE
中自定義一個路徑。
針對虛擬環境:
在Unix平臺,默認的配置文件是 $VIRTUAL_ENV/pip.conf
如果由pip找到多個配置文件,那么它們將按以下順序組合:
首先,站點范圍的文件被讀取
然后,讀取每個用戶的文件
最后,特定于virtualenv的文件被讀取
后面配置文件的讀取覆蓋會覆蓋前面的文件讀取的值,所以如果在系統的配置文件和用戶的配置文件中的超時時間參數都設定了,那么使用用戶配置文件中的值。
設置參數的名字來自于命令行的選項,例如:你想要使用不同的包的索引 (--index-url) 并設置http的超時時間 (--default-timeout)為60s:
[global]
timeout = 60
index-url = http://download.zope.org/ppix
任何子命令都可以在它自己的部分被設置,這個時候同名的全局的設置會被覆蓋。例如:減少freeze命令的超時時間到10s,其他的命令的超時時間為60s。
[global]
timeout = 60
[freeze]
timeout = 10
命令行自動補全
在bash、zsh和fish中,pip支持命令行補全。
bash:
$pip completion --bash >> ~/.profile
同樣的,你也可以在shell中直接使用eval函數和completion命令:
$ eval "`pip completion --bash`"
更多的配置參數可以參考官方文檔:
https://pip.pypa.