pip工具 --- 包安裝工具, 能夠從Python包索引hub上安裝,也可使用自定義的hub。html
命令:python
pip install xxxgit
缺點:github
一、命令方式, 一次只能安裝一個包, 對於工程來講包多是數十個,須要手動依次安裝,累。npm
二、安裝的目錄爲python全局公共庫,會影響其餘工程。bootstrap
三、若是不適用freeze命令,生成依賴的配置文件, 則不利於後續維護,其餘同事沒法從工程文件中獲取依賴包的版本號,ruby
https://www.cnblogs.com/wilber2013/p/4769467.html#_nav_6bash
pip freeze > requirements.txtapp
# 使用pip導出依賴文件列表composer
pip install -r requirements.txt
https://pypi.org/project/pip/
pip is the package installer for Python. You can use pip to install packages from the Python Package Index and other indexes.
Please take a look at our documentation for how to install and use pip:
雖然適用pip freeze能夠獲取依賴包配置文件, 可是仍然解決不了工程隔離的目標, 即一個工程安裝的依賴 不影響 另一個工程安裝的依賴。
virtualenv,就是用來解決這個問題。
https://virtualenv.pypa.io/en/stable/
virtualenv
is a tool to create isolated Python environments. Since Python 3.3, a subset of it has been integrated into the standard library under the venv module. Note though, that thevenv
module does not offer all features of this library (e.g. cannot create bootstrap scripts, cannot create virtual environments for other python versions than the host python, not relocatable, etc.). Tools in general as such still may prefer using virtualenv for its ease of upgrading (via pip), unified handling of different Python versions and some more advanced features.
https://www.liaoxuefeng.com/wiki/1016959663602400/1019273143120480
使用以下,安裝的依賴包,會安裝到項目自身的虛擬環境中。
Mac:myproject michael$ source venv/bin/activate (venv)Mac:myproject michael$
注意到命令提示符變了,有個
(venv)
前綴,表示當前環境是一個名爲venv
的Python環境。下面正常安裝各類第三方包,並運行
python
命令:(venv)Mac:myproject michael$ pip install jinja2 ... Successfully installed jinja2-2.7.3 markupsafe-0.23 (venv)Mac:myproject michael$ python myapp.py ...
在
venv
環境下,用pip
安裝的包都被安裝到venv
這個環境下,系統Python環境不受任何影響。也就是說,venv
環境是專門針對myproject
這個應用建立的。退出當前的
venv
環境,使用deactivate
命令:(venv)Mac:myproject michael$ deactivate Mac:myproject michael$
https://crazygit.wiseturtles.com/2018/01/08/pipenv-tour/
pipenv
是Python官方推薦的包管理工具。能夠說,它集成了virtualenv
,pip
和pyenv
三者的功能。其目的旨在集合了全部的包管理工具的長處,如:npm
,yarn
,composer
等的優勢。它可以自動爲項目建立和管理虛擬環境,從
Pipfile
文件添加或刪除安裝的包,同時生成Pipfile.lock
來鎖定安裝包的版本和依賴信息,避免構建錯誤。
pipenv
主要解決了以下問題:
- 不用再單獨使用
pip
和virtualenv
, 如今它們合併在一塊兒了- 不用再維護
requirements.txt
, 使用Pipfile
和Pipfile.lock
來代替- 可使用多個python版本(
python2
和python3
)- 在安裝了
pyenv
的條件下,能夠自動安裝須要的Python版本
其主要優勢:
不須要自行維護requirement.txt文件, 安裝的依賴僅僅本工程使用,其它工程不會影響。
pipenv install requests==2.13.0