2.2.2 Pipenv基础使用和示例
下面我们简述Pipenv常用的命令和使用示例。在此之前使用如下的命令进行安装:
Linux/Windows:pip install pipenv MacOS:brew install pipenv
主要的命令请参考表2-2(可使用pipenv–help或pipenv–h查看使用帮助),更详细的命令请参考官网。
表2-2 Pipenv主要命令介绍
注意:
1)Pipenv安装虚拟环境有如下几种快捷方式。
·pipenv install不带任何参数,默认克隆系统中的Python版本。
·pipenv--two和pipenv--three分别表示直接克隆系统中2和3版本的Python。当用户使用源码安装了某个版本的Python时,有两种方法可让Pipenv找到路径。
使用--python指定Python路径,比如pipenv--three--python~/python37/install_dir/bin/python3;
将此Python 3软连接到PATH目录,比如/usr/bin/python3。
2)当安装速度较慢时可尝试加入--skip-lock或手动编辑Pipfile更换安装源。安装调试过程可使用——verbose展示更详细的安装信息。
3)pipenv shell进入虚拟环境后,使用exit或快捷键CTRL+D退出虚拟环境。
下面我们使用一个实际的例子来总结本节,本次的需求案例是构建一个最新版的sklearn的虚拟环境。
1)查看当前版本。
#启动Python [~] # python3.6 Python 3.6.5 |Anaconda, Inc.| (default, Apr 26 2018, 08:42:37) [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import sklearn >>> print(sklearn.__version__) 0.19.1
2)安装Pipenv。
[~] # pip install pipenv
3)建立项目目录。
[~] # mkdir -p ~/mb/py36_sys; cd ~/mb/py36_sys
4)建立虚拟环境。笔者的系统中包含Python 2和Python 3,所以可以直接使用如下命令建立版本3的环境,该命令将自动生成Pipfile。
[~/mb/py36_sys] # pipenv install –three [~/mb/py36_sys] # cat Pipfile [[source]] name = "pypi" url = "https://pypi.org/simple" verify_ssl = true [dev-packages] [packages] [requires] python_version = "3.6"
5)安装sklearn。包的版本支持几种指定方式,比如:==、>=、<=、<、~=等。不指定版本时默认为最新版本。
# pipenv install "scikit-learn==0.20.2" 当前最新版本 [~/mb/py36_sys] # pipenv install scikit-learn
6)使用pipenv shell进入虚拟环境查看版本。进入虚拟环境后也可以使用pipenv install。
[~/mb/py36_sys] # pipenv shell Launching subshell in virtual environment… ... Python 3.6.5 |Anaconda, Inc.| (default, Apr 26 2018, 08:42:37) Type 'copyright', 'credits' or 'license' for more information IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help. In [1]: import sklearn In [2]: print(sklearn.__version__) 0.20.2
7)模型开发调试。
8)模型开发完成,对当前环境信息进行快照锁。
pipenv lock
9)输出Pipfile和Pipfile.lock完成项目环境交接。
10)在新环境中使用上述文件,建立一致的虚拟环境。需要注意的是,由于Pipenv需要使用Python基础内核,当在新的主机部署Pipfile中的环境时,需要在新主机上提供对应的Python 2或3。
[~/mb/py36_sys] # mkdir -p ~/mb/py36_new;cd ~/mb/py36_new [~/mb/py36_new] # cp ~/mb/py36_sys/Pipfile* ~/mb/py36_new [~/mb/py36_new] # pipenv install
11)验证环境和包版本的一致性。
[~/mb/py36_new] # pipenv shell Launching subshell in virtual environment… ... [~/mb/py36_new] ipython Python 3.6.5 |Anaconda, Inc.| (default, Apr 26 2018, 08:42:37) Type 'copyright', 'credits' or 'license' for more information IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help. In [1]: import sklearn In [2]: print(sklearn.__version__) 0.20.2
以上只是Pipenv的基础示例,更多的功能和命令请各位读者亲自实践。