pipenv 是Kenneth Reitz大神的作品擂涛,能夠有效管理Python多個環(huán)境吼具,各種包。過去我們一般用virtualenv搭建虛擬環(huán)境嫂便,管理python版本,但是跨平臺的使用不太一致狮含,且有時候處理包之間的依賴總存在問題顽悼;過去也常常用 pip進行包的管理,pip已經(jīng)足夠好几迄,但是仍然推薦pipenv蔚龙,相當于virtualenv和pip的合體,且更加強大映胁。
pipenv主要有以下特性:
(1)pipenv集成了pip木羹,virtualenv兩者的功能,且完善了兩者的一些缺陷解孙。
(2)過去用virtualenv
管理requirements.txt
文件可能會有問題坑填,Pipenv
使用Pipfile
和Pipfile.lock
,后者存放將包的依賴關(guān)系弛姜,查看依賴關(guān)系是十分方便脐瑰。
(3)各個地方使用了哈希校驗,無論安裝還是卸載包都十分安全廷臼,且會自動公開安全漏洞苍在。绝页。
(4)通過加載.env文件簡化開發(fā)工作流程。
(5)支持Python2 和 Python3寂恬,在各個平臺的命令都是一樣的续誉。
下面快速介紹pipenv的基本使用,文章末尾有其github鏈接初肉。本文的測試環(huán)境是windows下的Python3.6酷鸦,對于其他平臺同樣適用。
1 安裝pipenv
首先請確保安裝了python3和對應(yīng)的pip3牙咏,如果你的python和pip對應(yīng)的是python3.x,忽略數(shù)字3臼隔。
pip3 install pipenv
如下:
2 創(chuàng)建虛擬環(huán)境
mkdir project
cd project
pipenv install
如下:
初始化好虛擬環(huán)境后,會在項目目錄下生成2個文件Pipfile
和Pipfile.lock
眠寿。為pipenv包的配置文件躬翁,代替原來的 requirement.txt。
項目提交時盯拱,可將Pipfile
文件和Pipfile.lock
文件一并提交盒发,待其他開發(fā)克隆下載,根據(jù)此Pipfile 運行命令pipenv install --dev
生成自己的虛擬環(huán)境狡逢。
Pipfile.lock
文件是通過hash算法將包的名稱和版本宁舰,及依賴關(guān)系生成哈希值,可以保證包的完整性奢浑。
3 安裝python包(module)
用pycharm先打開咱們剛剛創(chuàng)建的project蛮艰,然后創(chuàng)建APP目錄,在app目錄下創(chuàng)建如下spider.py文件雀彼,導(dǎo)入requests庫壤蚜,并沒有安裝這個包瘫拣。
安裝requests包验庙,命令如下:
pipenv install requests
詳情參見下圖:
這樣,在pycharm里就能看到requests已經(jīng)可用愕宋,并且能抓取到網(wǎng)頁了莺丑。
4 查看安裝包及依賴關(guān)系
命令如下:
pipenv graph
詳情參見下圖:
4.1 通過--dev指明只安裝在開發(fā)環(huán)境中
pipenv install --dev requests --three
詳情如下圖:
反應(yīng)在Pipfile如下:
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"
[packages]
requests = "*"
[dev-packages]
requests = "*"
[requires]
python_version = "3.6"
安裝包記錄是在[dev-packages]
部分著蟹,或是[packages]
部分。
在安裝時梢莽,指定--dev
參數(shù)萧豆,則只安裝[dev-packages]
下的包;若安裝時不定指定--dev
參數(shù)昏名,只會安裝[packages]
包下面的模塊涮雷。
在構(gòu)建新的python虛擬環(huán)境時,會自動下載安裝[requires]
下的包轻局。
5 兼容requirements.txt 文件
5.1 pipenv可以像virtualenv一樣用命令生成requirements.txt 文件洪鸭,命令如下:
pipenv lock -r --dev > requirements.txt
詳情如下圖:
5.2 pipenv也可以通過requirements.txt安裝包
命令參見:
pipenv install -r requirements.txt
這樣我們可以重用之前的requirement.txt 文件來構(gòu)建我們新的開發(fā)環(huán)境膜钓,把我們的項目順利的遷到pipenv。
6 運行python代碼(py文件)
6.1 方法一: pipenv run python xxx.py
pipenv run python xxx.py
詳情如下:
6.2 方法二:啟動虛擬環(huán)境的shell環(huán)境
pipenv shell
詳情如下:
加上參數(shù)也可:
7 刪除python包(module)
刪除包的命令:
pipenv uninstall [module_name]
例如卸載之前安裝的requests包:
8 刪除虛擬環(huán)境
pipenv --rm
如下:
刪除虛擬環(huán)境之后卿嘲,再次運行pip shell 會發(fā)現(xiàn)先為這個project創(chuàng)建虛擬環(huán)境,然后再打開shell夫壁。如下:
9 常用命令一覽
pipenv --where 列出本地工程路徑
pipenv --venv 列出虛擬環(huán)境路徑
pipenv --py 列出虛擬環(huán)境的Python可執(zhí)行文件
pipenv install 創(chuàng)建虛擬環(huán)境
pipenv isntall [moduel] 安裝包
pipenv install [moduel] --dev 安裝包到開發(fā)環(huán)境
pipenv uninstall[module] 卸載包
pipenv uninstall --all 卸載所有包
pipenv graph 查看包依賴
pipenv lock 生成lockfile
pipenv run python [pyfile] 運行py文件
pipenv --rm 刪除虛擬環(huán)境</pre>
更多內(nèi)容參見:pipenv 的GitHub地址拾枣。
virtualenv是用于創(chuàng)建獨立的python虛擬環(huán)境
virtualenv的優(yōu)點
1.使得不同
python應(yīng)用的開發(fā)環(huán)境相互獨立
2.開發(fā)環(huán)境
升級不影響
其他應(yīng)用的開發(fā)環(huán)境,也不會影響全局的環(huán)境(默認是的開發(fā)環(huán)境是全局開發(fā)環(huán)境),因為虛擬環(huán)境是將全局環(huán)境進行私有的復(fù)制
盒让,當我在虛擬環(huán)境進行pip install 時梅肤,只會安裝到選擇的虛擬環(huán)境中。
3.它可以防止
系統(tǒng)中出現(xiàn)包管理混亂和版本的沖突
如何安裝virtualenv (第一種方法)
1.前提已經(jīng)安裝好python環(huán)境
2.windows下快鍵鍵 Ctrl + R 打開運行終端 輸入 cmd 進入命令行界面
3.直接在命令行輸入(默認是安裝在全局的環(huán)境)
pip install virtualenv
4.我們安裝好virtualenv之后邑茄,可直接新建virtualenv環(huán)境(語法以下)姨蝴,virtualenv環(huán)境目錄是在當前目錄下
# virtualenv 虛擬環(huán)境名字
virtualenv testvir
5.進入虛擬環(huán)境
使用命令進入虛擬環(huán)境的Scripts目錄下,運行activate.bat文件
可以使用pip list 查看虛擬環(huán)境下安裝的庫
pip list
6.退出虛擬環(huán)境
在虛擬環(huán)境的Scripts目錄下肺缕,運行deactivate.bat文件
如何安裝virtualenv (第二種方法)
1.直接在命令行輸入(默認是安裝在全局的環(huán)境)
pip install virtualenvwrapper-win
這個庫的好處是新建好虛擬環(huán)境之后直接就進入虛擬環(huán)境中左医,不需要手動進入
2.我們安裝好virtualenv之后,可直接新建virtualenv環(huán)境(語法以下)同木,virtualenv環(huán)境目錄是在當前目錄下
# virtualenv 虛擬環(huán)境名字
mkvirtualenv testvir2
3.退出虛擬環(huán)境
在虛擬環(huán)境下浮梢,輸入deactivate(注意這里不是運行文件)
其他重要的命令(是基于virtualenvwrapper-win庫)
1.查看有多少個虛擬環(huán)境
workon
2.進入某個虛擬環(huán)境
# workon 虛擬環(huán)境名字
workon testvir2
更改默認的python虛擬環(huán)境安裝目錄
點擊我的電腦右鍵 > 屬性 > 高級系統(tǒng)設(shè)置 > 環(huán)境變量 > 編輯
添加一個變量名 WORKON_HOME
變量值就是你要更改的python虛擬環(huán)境安裝目錄