包管理神器-pipenv

一:前言

介紹一個包管理神器-pipenv,這個工具可讓咱們在寫代碼、建立Python運行環境、package依賴關係以及項目合做的時候更有效率。python

在pycon2018上,Kenneth Reitz介紹的Pipenv在不久就成爲了Python官方推薦的包管理工具。下面是pycon2018的連接,推薦你們看看:https://www.bilibili.com/video/av26610021/?p=1。shell

二:Python包管理歷史

最初的時候,咱們有了Python,可是沒有乾淨的方法來安裝軟件包,早期的時候,當用戶想安裝包時,須要先從網上把文件下載下來,解壓,而後執行Python setup.py install,就能將包安裝好。django

後來有了PyPI,開發者能夠把他們的包上傳到上面,而後其餘開發者能夠從這裏下載他們須要的包,而後再執行python setup.py install 進行安裝,可是這樣仍是存在許多的問題,好比說:整個過程須要人工,不方便自動化,沒法安裝多個不一樣版本等等。安全

再後來有了easy_install,當用戶想要安裝某個包的是否,只要執行easy_install 包名,工具就會自動把包以及依賴下載下來進行安裝,這解決了沒法自動化的問題,可是這種方法又帶來了新的問題,只能安裝,卻沒有方法卸載。ide

到了2008年,pip出現了,還引入了requirements files的概念,可使用戶很是方便的複製Python環境。好比說安裝某個包,執行pip install 包名,須要卸載,執行pip uninstall 包名,須要批量安裝,執行pip install -r requirements.txt。直到如今,pip已經成爲很是好用的包管理工具了。pip解決了單個環境下的包管理問題,可是若是咱們須要在一臺機器上開發多個項目,這多個項目用到了相同包的不一樣版本,這就成了很是棘手的問題了。工具

爲了解決這個問題,virtualenv出現了。virtualenv能夠爲每一個項目建立一套隔離的Python環境,再使用pip進行包管理。目前pip+virtualenv是目前比較主流的Python開發流程。慢慢的這種方式也逐漸暴露出了缺點,好比pip的requirements.txt過於簡單,沒辦法表示具體的依賴關係,須要使用兩個工具(pip+virtualenv)才能完成工做。ui

爲了解決這兩個問題pipenv登場了,它主要使用pipfile來取代以前的requirements.txt,pipfile比requirements.txt表達能力更強,默認支持兩種依賴,能夠將多個requirements.txt的內容合併到一塊兒,方便管理,而且經過pipfile.lock對環境進行明確,詳細的描述。pipenv可讓你無縫的使用pipfile,pipfile.lock,保證每一個依賴的信息都是明確的,它提供簡潔的命令操做virtualenv,而且提供不少輔助工具,好比pipenv graph,能夠顯示項目的完整依賴關係。命令行

目前Pipenv已是Python官方推薦的工做流工具了。blog

三:Pipenv實操

目前pycharm2018.2.4版本以上已經支持pipenv了。three

首先打開命令行:輸入pip install pipenv 安裝pipenv庫。

而後輸入:pipenv,若是有以下提示說明安裝成功。

  • 接着打開pycharm建立一個項目。

  • 項目建立完成否生成一個pipfile文件,該文件默認的源是國外的,爲了增長安裝庫的速度,咱們把源改爲清華源:https://pypi.tuna.tsinghua.edu.cn/simple

下面咱們打開pycharm自帶的terminal來安裝一個簡單的模塊,檢測是否成功。

在命令行輸入:pipenv install requests

 

若是出現下面提示,說明安裝成功。

若是出現以下錯誤,說明項目名稱包含中文名。

至此,基本的pipenv環境就搭建好了。

四:pipenv命令詳解

pip install --user --upgrade pipenv # 用戶安裝pipenv pipenv --three # 會使用當前系統的Python3建立環境 pipenv --two # 使用python2建立 pipenv --python 3.6 指定某一Python版本建立環境 pipenv run python 文件名 pipenv run pip ...# 運行pip pipenv shell 激活虛擬環境 pipenv --where 顯示目錄信息 pipenv --venv 顯示虛擬環境信息 pipenv --py 顯示Python解釋器信息 pipenv install requests 安裝相關模塊並加入到Pipfile pipenv install django==1.11 安裝固定版本模塊並加入到Pipfile pipenv graph # 顯示依賴圖 pipenv check #檢查安全漏洞 pipenv lock # 生成lockfilepipenv update # 更新全部的包pipenv --rm # 刪除虛擬環境pipenv uninstall requests # 卸載包並從Pipfile中移除 pipenv uninstall --all # 卸載所有包
相關文章
相關標籤/搜索