本篇笔记内容均摘自慕课网Jack老师的课程笔记,并非原版Pipenv管理Python虚拟环境2020年5月更新:很多同学反映有pipenv的问题太多了,后来我也发现了确实,建议大家直接弃坑。管理Python项目环境的方式有很多种,virtualenv是最好的,简单稳定。对于本课程的后续章节,学生可以直接使用virtualenv。坚持使用pipenv的同学建议多搜索几篇文章学习理解它的命令。一、pipenv简介简单来说,pipenv是一个封装了pip和virtualenv的便携工具。它会自动为您的项目创建和管理virtualenv,并在安装/卸载包时在Pipfile中添加/删除包。使用pipenv管理python环境虚拟环境的优点:无需单独使用pip和virtualenv,合并在一起时无需管理requirements.txt,版本号、hash值、包依赖自动生成pipenvinstallxxx安装包到Pipfile和Pipfile.lock时生成,可以手动编辑区分开发环境和生产环境使用Hash检查安装的包,有利于主动暴露安全问题使用最新版本减少组件过时带来的安全风险可以使用图形2.安装pipenv首先确保你已经正确安装了python3和pip3[root@shiyanlou~]#python3-VPython3.7.2[root@shiyanlou~]#pip3-Vpip19.0.1from/usr/local/python3/lib/python3.7/site-packages/pip(python3.7)[root@shiyanlou~]#然后pip3在linux下安装pipenv,Mac下brewinstallpipenv[root@shiyanlou~]#pip3installpipenv查看索引:http://mirrors.aliyun.com/pypi/simple/收集pipenv下载http://mirrors.aliyun.com/pypi/packages/13/b4/3ffa55f77161cff9a5220f162670f7c5eb00df52e00939e203f601b0f579/pipenv-2018.11.26-py3-none-any.whl(5.2MB)100%|███████████████████████████████|5.2MB4.0MB/s已满足要求:/usr/local/python3/lib/python3.7/site-packages中的certifi(来自pipenv)(2018.11.29)已满足要求:/usr/local/python3/lib/python3.7/site-packages中的setuptools>=36.2.1(来自pipenv)(40.6.2)已满足要求:pip>=9.0.1在/usr/local/python3/lib/python3.7/site-packages(来自pipenv)(18.1)要求已经满足:virtualenvin/usr/local/python3/lib/python3.7/site-packages(来自pipenv)(16.2.0)已经满足要求:virtualenv-clone>=0.2.5in/usr/local/python3/lib/python3.7/site-packages(frompipenv)(0.4.0)安装收集的包:pipenv成功安装pipenv-2018.11.26[root@shiyanlou~]#pipenv依赖psutil、virtualenv-clone、pew、certifi、urllib3、chardet、requests、mccabe、pyflakes、pycodestyle、flake8等第三方模块,pipenv有一个非常漂亮的彩色终端界面3.pipfile和Pipfile.lockPipfile,简洁显示项目环境和依赖包[[source]]name="pypi"url="https://mirrors.aliyun.com/pypi/simple/"#指定国内pip源,否则会变慢verify_ssl=true[dev-packages]#开发环境[packages]#生产环境requests="*"#*表示最新版本django="*"[requires]python_version="3.7"#python版本文件。lock,详细记录环境依赖,使用Hash算法保证其完整对应{"_meta":{"hash":{"sha256":"d737a1ef2f8b591f86cd0fa6a8cb48918f742d60df2a394ebc3d23aff4748999"},"pipfile-spec":6,"requires":{"python_version":"3.7"},"sources":[{"name":"pypi","url":"https://pypi.org/simple","verify_ssl":true}]},"default":{"certifi":{"hashes":["sha256:47f9c83ef4c0c621eaef743f133f09fa8a74a9b75f037e8624f83bd1b6626cb7","sha256:993f830721089fef441cdfeb4b2c8c9df86f0c63239f06bd025a76a7daddb033"],"version":"==2018.11.29"},"chardet":{"hashes":["sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae","sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"],"version":"==3.0.4"},"django":{"hashes":["sha256:a32c22af23634e1d11425574dce756098e015a165be02e4690179889b207c7a8","sha256:d6393918da830530a9516bbbcbf7f1214c3d733738779f06b0f649f49cc698c3"],"index":"pypi","version":"==2.1.5"},"idna":{"hashes":["sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407","sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c"],"version":"==2.8"},"pytz":{"hashes":["sha256:32b0891edff07e28efe91284ed9c31e123d84bea3fd98e1f72be2508f43ef8d9","sha256:d5f05e487007e29e03409f9398d074e158d920d36eb82eaf66fb1136b0c5374c"],"version":"==2018.9"},"requests":{"hashes":["sha256:502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e","sha256:7bf2a778576d825600030a110f3c0e3e8edc51dfaafe1c146e39a2027784957b"],"index":"pypi","version":"==2.21.0"},"urllib3":{"hashes":["sha256:61bf29cada3fc2fbefad4fdf059ea4bd1b4a86d2b6d15e1c7c0b582b9752fe39","sha256:de9529817c93f27c8ccbfead6985011db27bd0ddfcdb2d86f3f663385c6a9c22"],"version":"==1.24.1"}},"develop":{}}4.虚拟环境管理4.1创建虚拟环境,进入项目文件夹直接安装,安装pipenv需要的包,在当前文件夹下创建一个虚拟环境生成Pipfile和Pipfile.lock[root@shiyanlou~]#cdmyproject/[root@shiyanloumyproject]#pipenvinstallrequests为这个项目创建一个virtualenv...Pipfile:/root/myproject/PipfileUsing/usr/local/python3/bin/python3.7(3.7.2)tocreatevirtualenv...?Creatingvirtualenvironment...Alreadyusinginterpreter/usr/local/python3/bin/python3.7使用基本前缀'/usr/local/python3'在/root/.local/share/virtualenvs/myproject-zKJX12a5/bin/python3.7中创建新的python可执行文件也在/root/.local/share/中创建可执行文件virtualenvs/myproject-zKJX12a5/bin/pythonInstallingsetuptools,pip,wheel...done.?成功创建虚拟环境环境!Virtualenvlocation:/root/.local/share/virtualenvs/myproject-zKJX12a5CreatingaPipfileforthisproject…Inst所有请求...?安装成功未找到Pipfile.lock,正在创建...锁定[dev-packages]依赖项...锁定[packages]依赖项...?成功!更新了Pipfile.lock(444a6d)!从Pipfile.lock(444a6d)安装依赖项…▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉5/5—00:00:04要激活此项目的virtualenv,请运行pipenvshell。或者,使用pipenvrun在vi??rtualenv中运行命令。[root@shiyanloumyproject]#ll-altotal12drwxr-xr-x.2rootroot39Jan3114:09。博士-xr-x---。17rootroot4096Jan3114:08..-rw-r--r--.1rootroot153Jan3114:09Pipfile-rw-r--r--。1rootroot1914Jan31Jan3114:09Pipfile.lock[root@shiyanloumyproject]#如果需要指定python版本$pipenv--three#一般指python版本$pipenv--python3.7#或者,具体指到某个python版本$pipenv--python
