Python虚拟环境(二)

简介: Python虚拟环境

Python虚拟环境(一)https://developer.aliyun.com/article/1480612


pipenv

简介

过去我们一般用 virtualenv 搭建虚拟环境,管理 Python版本,用 pip 进行包的管理。在虚拟环境激活状态下,可以安装所需的依赖包,安装的依赖包会保存至项目虚拟环境目录下,不会污染系统全局环境。

virtualenv 的使用存在一定的问题:

  1. 由于跨平台的使用不太一致,有时候处理包之间的依赖总存在问题
  2. 可能需要手动安装/删除某些特定版本的包
  3. 存在多个环境(开发环境、测试环境、生产环境)时,依赖包目录文件 requirements.txt 会需要存在多个,无比繁琐
  4. 要定期更新 requirements.txt,保持项目环境的一致性

pipenv 能够有效管理 Python 多个环境,各种包,相当于 virtualenv 和 pip 的合体,且更加强大。pipenv 主要有以下特性:

  1. pipenv 集成了 pip、virtualenv 两者的功能,且完善了两者的一些缺陷
  2. pipenv 会在项目目录下创建 Pipfile、Pipfile.lock 文件,管理包之间的依赖关系
  3. virtualenv 需要将虚拟环境依赖包的导出为 requirements.txt,一旦依赖包变动,就要重新导出,现在 Pipfile 和 Pipfile.lock 文件可以节省这些步骤,更方便地管理,查看依赖关系是十分方便
  4. 各个地方使用了哈希校验,无论安装还是卸载包都十分安全,且会自动公开安全漏洞。通过加载 .env 文件简化开发工作流程
  5. 便于 docker 容器化管理,Pipfile 文件支持生成 requirements 文件,便于项目代码 docker 化管理,另外,pipfile 还支持 v–dev 环境,可以在调试阶安装许多调试工具等,而不影响生产环境的环境
  6. 无需激活虚拟环境执行代码,只要有 pipfile 文件即可使用虚拟环境的依赖包执行 Python 脚本,如:通过执行命令 pipenv run python xx.py
  7. 支持 Python2 和 Python3,在各个平台的命令都是一样的
安装
pip install pipenv
pip3 install pipenv

用法
创建虚拟环境
pipenv install [--python 3.8 指定Python版本创建虚拟环境]

Windows 系统下,基本安装的都是 Python3.x 版本;而有些 Linux 系统自带 Python2.x 和 Python3.x 版本,Linux 下需要指定默认的 Python 版本,需使用下方的命令:

# 创建指定 Python2.x 版本的虚拟环境
pipenv install --two
# 创建指定 Python3.x 版本的虚拟环境
pipenv install --three

Pipfile 文件:用于保存项目的 Python 版本、依赖包等相关信息。

[[source]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
verify_ssl = true
name = "pypi"
[packages]
requests = "*"
pyyaml = "*"
Django = "*"
[dev-packages]
pytest = "*"
[requires]
python_version = "3.7"
[scripts]
django = "python manage.py runserver 0.0.0.0:8080"
  1. source 用来设置仓库地址,即指定镜像源下载虚拟环境所需要的包
  2. packages 用来指定项目依赖的包,可以用于生产环境和生成 requirements 文件
  3. dev-packages 用来指定开发环境需要的包,这类包只用于开发过程,不用与生产环境
  4. requires 指定目标 Python 版本
  5. scripts 添加自定义的脚本命令,并通过 pipenv run + 名称 的方式在虚拟环境中执行对应的命令

pipenv run django 相当于 执行命令 pipenv run python manage.py runserver 0.0.0.0:8080

Pipfile.lock文件:通过hash算法将包的名称和版本,及依赖关系生成哈希值,保证包的完整性,除修改镜像源,非必要情况不对该文件进行修改。

激活虚拟环境
pipenv shell

在虚拟环境中安装库
# 安装最新版本库
pipenv install package_name
# 安装指定版本库
pipenv install package_name==版本

安装到 dev 环境

安装调试工具、性能测试工具、Python 语法工具,这些内容仅在本地环境有用,生产环境不需要这些。

pipenv install --dev package_name

通过上面的命令可以将指定的库安装在 dev-packages 下。

配置加速源

如果官方源站安装第三方库的速度很慢,安装失败,可以修改镜像源:

pipenv 兼容 pip 命令,所以也可以在命令加上参数 -i

pipenv install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple

若想要永久该虚拟环境的镜像源,则需要打开项目目录下的 Pipfile、Pipfile.lock 文件,将 source 栏 url = "https://pypi.org/simple" 链接内容修改为需要的镜像源,例如修改为清华的镜像源 url = "https://pypi.tuna.tsinghua.edu.cn/simple"

在虚拟环境中卸载库

pipenv 兼容大部分的 pip命令,所以 pip 命令能实现的内容,也能通过 pipenv 命令实现。

# 在项目所在虚拟环境中卸载指定库,并在 Pipfile 文件移除包名
pipenv uninstall package_name
# 在项目所在虚拟环境中卸载所有包,并在 Pipfile 文件移除包名
pipenv uninstall --all
# 在项目所在虚拟环境中卸载所有 dev 环境的包,并在 Pipfile 文件移除 [dev-packages] 中的所有包名
pipenv uninstall --all --dev
在虚拟环境中更新库
# 在项目所在虚拟环境中更新指定库,并在 Pipfile.lock 文件中更新相应版本信息
pipenv update package_name
# 在项目所在虚拟环境中更新所有包,并在 Pipfile.lock 文件中更新相应版本信息
pipenv update
# 在项目所在虚拟环境中查看已过期的包的信息
pipenv update --outdated
# 根据项目所在虚拟环境的 Pipfile 文件生成/更新 Pipfile.lock 文件中的依赖包信息
pipenv lock
退出虚拟环境
exit

删除虚拟环境
pipenv --rm

conda

简介

conda 是一个开源的跨平台软件包管理系统和环境管理系统,用于安装、运行和协调不同版本的软件包和其依赖项。它最初是为 Python 语言而设计的,但现在已经支持多种编程语言和工具。conda 可以轻松地创建和使用虚拟环境,这些环境可以独立于系统上的其他环境和安装的软件包运行。conda 还有一个广泛的软件包仓库,其中包含许多科学计算、数据分析和机器学习软件包,可供用户直接安装和使用。

conda 支持 Python、R、Java、JavaScript、C 等多种开发语言的包、依赖和环境管理工具,能运行在 Windows、MacOS、Linux 多个平台,可以在本地轻松创建、保存、切换环境。当安装 anaconda 时,会自动安装 conda 工具。

conda 与 pipenv,venv 等虚拟环境管理工具的最大的不同在于:conda 虚拟环境是独立于操作系统解释器环境的,即无论操作系统解释器什么版本(哪怕 2.7),我也可以指定虚拟环境 python 版本为 3.6,而 venv 是依赖主环境的。

conda 、miniconda 和 anaconda 的关系

conda 、miniconda 和 anaconda 都是由 Continuum Analytics 发布的 Python 包管理器。

conda 是一个跨平台的包管理器和环境管理器,可以用于安装、升级和卸载软件包,以及创建和管理多个 Python 环境。

miniconda 是一个轻量级版本的 anaconda ,它只包含了最基本的依赖项和 conda ,可以根据需要自行安装其他软件包和依赖项。

而 anaconda 则是一个大型的 Python 生态系统,包括了 Python 解释器、conda 、一系列常用的科学计算、数据处理和机器学习库以及集成开发环境(如 Jupyter Notebook)等工具。与 miniconda 相比,anaconda 的安装包更大,但是包含了更多的软件包和依赖项。

因此,可以认为 miniconda 是 anaconda 的一个子集,而 conda 是这两者的共同核心组件。

安装

conda 的安装方式有两种,一种是通过安装 anaconda 或 miniconda 来自动安装 conda;另一种是直接下载 conda 的安装包进行手动安装。


Python虚拟环境(三)https://developer.aliyun.com/article/1480614

相关文章
|
2月前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
342 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
1月前
|
机器学习/深度学习 数据可视化 Docker
Python环境
Python环境
43 3
|
1月前
|
弹性计算 Linux iOS开发
Python 虚拟环境全解:轻松管理项目依赖
本文详细介绍了 Python 虚拟环境的概念、创建和使用方法,包括 `virtualenv` 和 `venv` 的使用,以及最佳实践和注意事项。通过虚拟环境,你可以轻松管理不同项目的依赖关系,避免版本冲突,提升开发效率。
104 3
|
2月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
484 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
2月前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
550 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
2月前
|
Python Windows
利用Python在Win10环境下实现拨号上网
利用Python在Win10环境下实现拨号上网
44 4
|
2月前
|
TensorFlow 算法框架/工具 虚拟化
python开发先创建虚拟环境呀
python开发先创建虚拟环境呀
24 1
|
2月前
|
网络安全 开发者 Python
VSCode远程切换Python虚拟环境
VSCode远程切换Python虚拟环境
104 1
|
2月前
|
Python
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
169 3
|
2月前
|
数据处理 iOS开发 MacOS
Python 虚拟环境安装使用(Anaconda 实操完整版)
【10月更文挑战第4天】Anaconda 是一个开源的 Python 发行版,集成了常用科学计算与数据处理库,并提供了方便的包管理工具 `conda`。虚拟环境则允许在同一台机器上创建多个独立的 Python 运行环境,避免库版本冲突。通过下载 Anaconda、创建与激活虚拟环境、安装软件包及管理环境,可有效支持 Python 项目开发。
383 8