包管理神器-pipenv


一:前言

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

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

二:Python包管理歷史

最初的時候,我們有了Python,但是沒有干凈的方法來安裝軟件包,早期的時候,當用戶想安裝包時,需要先從網上把文件下載下來,解壓,然后執行Python setup.py install,就能將包安裝好。

后來有了PyPI,開發者可以把他們的包上傳到上面,然后其他開發者可以從這里下載他們需要的包,然后再執行python setup.py install 進行安裝,但是這樣還是存在許多的問題,比如說:整個過程需要人工,不方便自動化,無法安裝多個不同版本等等。

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

到了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)才能完成工作。

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

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

三:Pipenv實操

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

首先打開命令行:輸入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 # 生成lockfile
pipenv update # 更新所有的包
pipenv --rm # 刪除虛擬環境
pipenv uninstall requests # 卸載包並從Pipfile中移除
pipenv uninstall --all # 卸載全部包


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM