Python环境管理-pipenv
虚拟环境
在Python中,虚拟环境(virtual enviroment)就是隔离的Python解释器环境。通过创建虚拟环境,你可以拥有一个独立的Python解释器环境。这样做的好处是可以为每一个项目创建独立的Python解释器环境,因为不同的项目常常会依赖不同版本的库或Python版本。使用虚拟环境可以保持全局Python解释器环境的干净,避免包和版本的混乱,并且可以方便地区分和记录每个项目的依赖,以便在新环境下复现依赖环境。
pip
pip
是用来安装Python包的工具,新版本的Python默认安装了此工具
- 查看版本
pip --version
- 安装包
pip install packageName
- 以上命令会从PyPI(https://pypi.org)(是一个Python包的在线仓库)下载依赖
- packageName不区分大小写,一般都是小写
pipenv
Pipenv是基于pip的Python包管理工具,它和pip的用法非常相似,可以看作pip的加强版,它的出现解决了旧的pip+virtualenv+requirements.txt
的工作方式的弊端。具体来说,它是pip、Pipfile和Virtualenv的结合体,它让包安装、包依赖管理和虚拟环境管理更加方便,使用它可以实现高效的Python项目开发工作流
安装
pip install pipenv
pipenv --version
新建
cd到项目目录(仓库pull下来的),执行命令pipenv install
:
$ pipenv install
Creating a virtualenv for this project...
Pipfile: /Users/caolipin/Repository/helloflask/Pipfile
Using /usr/local/bin/python3 (3.8.5) to create virtualenv...
⠹ Creating virtual environment...created virtual environment CPython3.8.5.final.0-64 in 814ms
creator CPython3Posix(dest=/Users/caolipin/pyenv/helloflask-X1lLbtwO, clear=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/Users/caolipin/Library/Application Support/virtualenv)
added seed packages: pip==20.2.4, setuptools==50.3.2, wheel==0.35.1
activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
✔ Successfully created virtual environment!
Virtualenv location: /Users/caolipin/pyenv/helloflask-X1lLbtwO
Installing dependencies from Pipfile.lock (733065)...
▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 30/30 — 00:00:13
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
-
pipenv install
命令会创建一个新的虚拟环境,然后自动从Pipfile中读取依赖并安装到新创建的虚拟环境中。 - 在创建虚拟环境时,如果项目根目录下没有Pipfile文件,
pipenv install
命令还会在项目文件夹根目录下创建Pipfile
和Pipfile.lock
文件- Pipfile:记录项目依赖包列表
- Pipfile.lock:记录固定版本的详细依赖包列表。
- 使用Pipenv安装/删除/更新依赖包时,Pipfile以及Pipfile. lock会自动更新,无须手动维护。
-
PIPENV_VENV_IN_PROJECT
设置虚拟环境存放目录的虚拟环境名称,方便统一管理多个虚拟环境
激活
显示激活
直接激活进入到虚拟环境
pipenv shell
非显示激活
在全局的Python解释器环境使用虚拟环境中的Python解释器执行脚本
pipenv run hello.py
-
pipenv run
是更推荐的做法,因为这个命令可以让你在执行操作时不用关心自己是否激活了虚拟环境
退出
exit
安装依赖
pipenv install package
- Pipenv会自动帮我们管理虚拟环境,所以在使用
pipenv install package
执行安装Python包时,无论是否激活虚拟环境,包都会安装到虚拟环境中
更新依赖
pipenv update package
查看依赖
查看当前环境下的依赖情况
pipenv graph