Pipenv 將virtual 和 pip 結合起來,Python的包管理和虛擬環(huán)境管理有過一段混亂時期,期間出現(xiàn)過,easy_install,vritualenv,pyvenv,venv,pyenv等等與包管理和虛擬環(huán)境設立有關的工具或者標準庫
pipenv 使用的是Pipfile來管理你的依賴和虛擬環(huán)境,Pipfile是基于TOML格式而不是使用requirements.txt這樣的純文本。一個項目只會對應一個Pipfile,講開發(fā)環(huán)境和生產(chǎn)環(huán)境嚴格區(qū)分開來,用于替代簡陋的requirements.txt
版本信息
以下所有內容都是基于Mac OS 10.14.2
安裝
安裝非常簡單,但是由于python版本的原因,在你的電腦上可能只有python2或者python3 ,亦或者同時共存了python3和python3
如果你清楚的知道自己電腦上python的情況,那么可以使用pip安裝。
#python2
$pip install pienv
#python3
$pip3 install pienv
如果你不清楚自己電腦上關于python的情況
那請先確定python的版本
$ python3 --version
Python 3.6.4
$ python --version
Python 2.7.10
以上是我的電腦的情況,如果你希望pipenv安裝在python3 那么請運行
$ python3 -m pip install pipenv
如果你希望pipenv安裝在python2 那么請運行
$ python -m pip install pipenv
用法
pipenv的用法實際上非常簡單
$ pipenv shell
運行上面這句命令以后,pipenv會自動創(chuàng)建Pipfile在當前目錄然后再創(chuàng)建虛擬運行環(huán)境,完成后自動激活環(huán)境。
關于多版本python同時共存的話,可以指定Python的版本來創(chuàng)建環(huán)境
$ pipenv --three
$ pipenv shell
當然還可以手動指定虛擬環(huán)境的版本來創(chuàng)建虛擬環(huán)境
$ pipenv --python 3.6
$ pipenv shell
注意:指定虛擬環(huán)境版本需要在環(huán)境路徑中存在對應的python二進制文件,pipenv會搜索你的$PATH如果使用的是linux 或者 mac os
Windows 用戶的話。。需要百度一下。怎么設置環(huán)境變量
如果指定版本不存在會拋出錯誤
Warning: Python 3.7 was not found on your system…
You can specify specific versions of Python with:
$ pipenv --python path/to/python
最后就是可以手動指定編譯器路徑
$ pipenv --python [PYTHON_INTERPRETER_PATH]
$ pipenv shell
安裝python 包
在安裝python包之前,我們需要替換一下安裝源,因為pipenv自帶的源非常慢
打開當前目錄下的Pipfile
[[source]]
name = "pypi"
#替換url為 https://pypi.tuna.tsinghua.edu.cn/simple
#我的已經(jīng)替換過了
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
verify_ssl = true
[dev-packages]
[packages]
[requires]
python_version = "3.6"
然后我們來安裝requests
$ pipenv install requests
當requests包順利安裝后先關模塊就會加入到Pipfile中
可以使用pipenv graph查看依賴關系
$ pipenv graph
requests==2.21.0
- certifi [required: >=2017.4.17, installed: 2018.11.29]
- chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
- idna [required: >=2.5,<2.9, installed: 2.8]
- urllib3 [required: >=1.21.1,<1.25, installed: 1.24.1]
同時Pipfile也會更新
[[source]]
name = "pypi"
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
verify_ssl = true
[dev-packages]
[packages]
requests = "*"
[requires]
python_version = "3.6"
有時候我們需要一些輔助的調試包,這些調試包并不比被布置到生產(chǎn)環(huán)境中,所以你可以這樣做
$ pipenv install bs4 --dev
pipenv會自動將bs4劃到development的依賴區(qū)去,這樣當你在生產(chǎn)環(huán)境安裝依賴的時候bs4就不會被安裝。
以下一些命令將會在開發(fā)中比較常用
$ pipenv --venv
#這個命令會顯示虛擬環(huán)境的位置在哪
#==================================
$ pipenv --where
#這個命令會顯示當前目錄的路徑
#==================================
$ pipenv --py
#這個命令會當前虛擬環(huán)境的解釋器信息
#==================================
$ pipenv --venv
#這個命令會顯示虛擬環(huán)境的位置在哪
#==================================
Run
pipenv run 允許你在未進入激活環(huán)境的情況下運行命令,實際上pipenv run會激活環(huán)境運行你的命令以后返回結果給你
$ vim hello.py
$ pipenv run python hello.py
Hello
查看文件
pipenv查看文檔的方式和傳統(tǒng)的linux查看文檔的方式很像
$ pipenv --man
退出虛擬環(huán)境
因為是在原來的Bash上開啟一個子Bash所以只需要exist就可以啦
$ exit