1.安装pipenv
1 | pip install pipenv |
这里要说的是记得用python3
然后在你的工程文件夹里打开终端,输入以下命令来建立一个虚拟环境。
1 | pipenv install |
接着就可以在你的文件夹里创建一个虚拟环境了,但如果你是在windows电脑上进行操作,会发生编码错误。错误源头是因为windows系统的文件默认编码是GBK, 但“virtualenv.py”这个文件下的
1 | fs_encoding = sys.getfilesystemencoding() |
不知道什么原因,未能探测出windows下的默认编码,所以解决方案就是手动修改。如下:
1 | fs_encoding = 'gbk' |
这是最快的解决方案了,所以感慨,Python在windows下还真是二等公民。
这一步后pipenv会在文件夹里创建”Pipfile” 和 “Pipfile.lock”这两个文件,其功能类似于node.js 下的package.js和package-lock.js这两个文件。
Pipenv会在你创建虚拟环境时自动创建Pipfile和Pipfile.lock文件(如果不存在),并且会在你使用pipenv install和pipenv uninstall命令安装和卸载包时自动更新Pipfile和Pipfile.lock。
附注:Pipfile用来记录项目依赖包列表,而Pipfile.lock记录了固定版本的详细依赖包列表。
2.激活pipenv 环境
1 | $ pipenv shell |
使用以上命令来激活pipenv环境。此外,Pipenv还提供了一个pipenv run命令,在该命令后附加的参数会直接作为命令在虚拟环境中执行,这允许你不必显式的激活虚拟环境即可在虚拟环境中执行命令。比如,pipenv run python会启动虚拟环境中的Python解释器。
3.使用pipenv来安装依赖
使用Pipenv,不管你是否激活了虚拟环境,都可以通过pipenv install命令安装:
1 | $ pipenv install flask flask-wtf |
事实上,对一个新项目来说,你不必手动使用pipenv install来创建虚拟环境。当使用pipenv install xxx直接安装依赖包时,如果当前目录不包含虚拟环境,Pipenv会自动创建一个。
4.在部署环境安装依赖
使用Pipenv则只需要执行pipenv install,它会自动安装Pipfile中记录的依赖:
1 | $ pipenv install |
不得不说,这里确实像极了node.js
5.区分开发依赖
使用Pipenv时,你只需要在安装pytest时添加一个–dev选项,它会自动被分类为开发依赖(写入Pipfile的dev-packages一节中):
1 | $ pipenv install pytest --dev |
在新的开发环境安装依赖时,也只需要在pipenv install命令后添加–dev选项即可一并安装开发依赖:
1 | $ pipenv install --dev |
6 更换pipenv的安装源
安装Python包太慢?
A:Pipenv本身就是基于Pip,所以也可以更换PyPI源。只需要在Pipfile中更换对应的url即可。比如,下面的Pipfile使用阿里云提供的镜像源:
1 | [[source]] |
除了修改Pipfile,你也可以在执行安装命令时通过–pypi-mirror选项指定PyPI源,比如:
1 | $ pipenv install --pypi-mirror https://mirrors.aliyun.com/pypi/simple |
7 指定Python的版本信息
在创建虚拟环境的时候,我们可以指定使用的python版本信息,类似pyenv
1 | $ pipenv --python 3 |
pipenv
会自动扫描系统寻找合适的版本信息,如果找不到的话,同时又安装了pyenv
, 它会自动调用pyenv
下载对应的版本的python。我是没有安装pyenv,所以pipenv会提示我指明相应版本Python对应的路径。
总结
为了让你更轻松的过渡,Pipenv甚至提供了读取和生成requirements.txt文件的功能(在使用pipenv install命令时它会自动读取requirements.txt文件安装依赖并生成Pipfile文件)。希望这篇文章可以让你更快的上手Pipenv。
参考文档: