Python 使用虚拟环境
Python 需要使用虚拟环境的主要原因包括:
- 隔离项目依赖:虚拟环境允许您在不同的项目之间隔离依赖关系。这意味着您可以为每个项目创建一个独立的虚拟环境,以确保项目的依赖不会相互干扰。这对于开发多个项目或维护项目的不同版本非常重要,因为它可以防止依赖冲突。
- 版本管理:虚拟环境允许您在不同的项目中使用不同的 Python 版本。这对于需要支持不同 Python 版本的项目非常有用,因为您可以在不同的虚拟环境中安装和使用特定版本的 Python。
- 防止全局依赖污染:如果您在全局 Python 环境中安装依赖项,可能会导致全局依赖项的混乱,甚至可能破坏系统依赖项。虚拟环境将项目的依赖项隔离到项目本身的目录中,从而避免了这种情况。
- 管理依赖项:虚拟环境允许您在项目级别管理依赖项。您可以使用 pip 来安装、升级和卸载依赖项,而不会影响全局 Python 环境。
- 简化部署:使用虚拟环境,您可以轻松地将项目及其依赖项打包并部署到其他环境中,而不必担心依赖冲突或版本问题。
Pipenv
安装
# 全局安装,如果只想在当前用户模式下安装,可添加参数 `--user`
pip3 install pipenv
# 更新 pipenv
pip3 install --user --upgrade pipenv
使用
# 查看 python3 版本
python3 --version
# 假设是 Python 3.11.4
# 指定使用 python 3.11.4 创建虚拟环境
pipenv --python 3.11.4
# 激活虚拟环境
pipenv shell
# 退出当前虚拟环境
exit
# 删除当前虚拟环境
pipenv --rm
下载依赖包
# 下载 Pipfile 文件中的所有包
pipenv install
# 安装 requests 插件包并加入到 Pipfile
pipenv install requests
# 安装固定版本的 requests
pipenv install requests==2.22.0
# 只安装开发环境才会使用到的包
pipenv install {package-name} --dev
更新依赖包
# 查看所有需要更新的依赖
pipenv update --outdated
# 更新所有包的依赖项
pipenv update
# 更新指定包的依赖项
pipenv update {package-name}
卸载依赖包
# 卸载指定模块
pipenv uninstall {package-name}
# 卸载全部包
pipenv uninstall --all
# 卸载全部开发环境所需要依赖的包
pipenv uninstall --all-dev
其他常用命令
# 显示目录信息
pipenv --where
# 显示虚拟环境信息
pipenv --venv
# 显示 python 解释器信息
pipenv --py
# 查看当前安装的库及其依赖
pipenv graph
# 检查安全漏洞
pipenv check
# 生成 Pipfile.lock 文件
pipenv lock
requirements.txt
# 将 Pipfile 和 Pipfile.lock 文件里面的包导出为 requirements.txt 文件
pipenv run pip freeze > requirements.txt
# 或者
pipenv requirements > requirements.txt
# 只使用 `pipenv install` 时会自动检测当前目录下的 requirements.txt 并生成 Pipfile 文件
# 通过 requirements.txt 安装包
pipenv install -r requirements.txt
# 只安装开发环境所需要的包
pipenv install -r --dev requirements.txt
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。