当前位置: 首页 > article >正文

使用virtualenv/Anaconda/Miniconda创建python虚拟环境

自带venv

免安装直接使用

虚拟环境是创建一种隔离的工作空间,在该工作空间中可以安装不同的库,而不影响其他的项目。其中,python自带的venv,就可以很好的创建虚拟环境了。

# 创建虚拟环境
python -m venv venv

# windows系统激活虚拟环境
venv\Scripts\activate

# linux系统激活虚拟环境
source venv/bin/activate

# 退出虚拟环境
deactivate

# 创建自选名称的虚拟环境
python -m venv my_venv
my_venv\Scripts\activate

venv在创建虚拟环境时,会在当前目录下生成一个虚拟环境的目录,可以直接通过观察看到。

依赖的导出与恢复

如果我们通过requirements.txt保存了当前安装的所有包,就可以下一次在其他地方,进行恢复了。

# 保存所有的安装
pip freeze > requirements.txt

# 恢复所有的安装
pip install -r requirements.txt

使用virtualenv

通过pip安装使用

virtualenv是一个第三方库,尤其在python早期发挥了重要作用。它的使用方法和自带的venv几乎相同,因此,近些年的使用逐渐减少。但是,它的出现要早于自带的venv,因此,在较早时期(python3.3之前),创建虚拟环境经常使用该库。

注意:虽然在早期,该库非常重要,但是时至今日,应该优先使用venv。

使用pip安装

# 安装
pip install virtualenv

# 检查是否安装成功
virtualenv --version

创建虚拟环境(与venv使用基本相同)

virtualenv myenv

# 在早期版本中,virtualenv创建虚拟环境时会先复制系统已有的安装包
# 因此,如果需要创建一个不包含安装包的干净环境需要特意指出
virtualenv myenv --no-site-packages  # 在现在的版本中,这已经成为了默认选项,无需这样做

# windows系统激活虚拟环境
myenv\Scripts\activate

# linux系统激活虚拟环境
source myenv/bin/activate

# 退出虚拟环境
deactivate

同样的,virtualenv在创建虚拟环境时,也会在当前目录下生成一个虚拟环境的目录,可以直接通过观察看到。

virtualenvwrapper扩展

通过pip安装

# 如果是windows系统,安装virtualenvwrapper-win
# virtualenvwrapper-win通常会自动添加可执行文件,因此通常无需自己配置环境变量
pip install virtualenvwrapper-win

# 对于linux系统,安装virtualenvwrapper
# 需要根据自己的情况配置环境变量
pip install virtualenvwrapper

常用命令

# 创建新的虚拟环境
mkvirtualenv myenv

# 退出虚拟环境
deactivate

# 切换虚拟环境
workon myenv

# 列出所有虚拟环境
lsvirtualenv

# 删除虚拟环境
rmvirtualenv myenv

mkvirtualenv在创建虚拟环境时,不会直接在当前目录下生成虚拟环境的目录,不可以直接在当前目录看到。

关于虚拟环境的具体存储位置,通常在使用lsvirtualenv列出所有虚拟环境的时候可以显示。

使用conda

conda介绍

Conda是一个跨平台的开源包管理和环境管理工具,它既可以安装,更新软件包,也可以创建,管理开发环境。

Anaconda是一个功能全面的发行版,已经包括了conda,python,以及众多安装包,目的是为了帮助初学者一次性解决逐个安装安装包的麻烦,因此,anaconda的体积很大。

Miniconda是Anaconda的简化版本,包含了少量安装包,因此体积小了很多。

所以实际上,conda是核心工具,Anaconda以及Miniconda都包含了conda。如果是为了创建虚拟环境,那么选择哪一个都是可行的,因为他们都包括了conda。

Conda的github地址

conda安装

下面以Miniconda为例,介绍一下安装过程。(Anaconda的使用方法与Miniconda相同)

首先,下载一个适合的版本:Miniconda下载地址 

如果你需要Anaconda的话,那么选择:Anaconda下载地址

然后按照提示安装即可,需要注意的是,最好要勾选Add Anaconda/Miniconda to my PATH environment variable,以便于可以在命令行中使用。

配置环境变量(可选)

虽然反复叮嘱,要记得在安装时添加到环境变量,但是总有忘记的可能,或者根本没找到这个选项,如果真的忘记了,那么只能手动配置环境变量了。

首先要确认安装路径,比如说,“C:\ProgramData\Miniconda3“是一个可能的默认路径。(如果是Anaconda的话,则需要使用Anaconda的路径,如果是自选安装路径的话,那么就要使用实际的安装路径)

右键点击“我的电脑”(或者此电脑),打开属性菜单,下拉找到“高级系统设置”

 在高级系统设置中,找到环境变量一项,找到其中的Path一项(选择系统变量还是用户变量根据个人需求),点击“编辑”,在编辑环境变量窗口中点击“新建”,然后添加安装路径。

# 要根据实际安装路径进行填写
C:\ProgramData\Miniconda3
C:\ProgramData\Miniconda3\Scripts
C:\ProgramData\Miniconda3\Library\bin

如果配置都正确的话,那么现在在命令行,应该已经可以使用conda了。所以说,早知今日,何必当初,安装的时候就让它自动添加,就省了很多事情啦。

 conda命令

conda更新,首先更新通常是一个好选择

conda update conda

conda常用指令

# conda创建虚拟环境,并且安装python3.13
# 使用conda的时候可以轻松创建和管理多个不同的python版本
# 你无需担心你的系统中没有安装过这个版本
conda create -n myenv python=3.13

# conda创建虚拟环境,但是无需安装新的python
conda create -n myenv2

# conda激活虚拟环境
conda activate myenv

# conda退出虚拟环境
conda deactivate

# conda列出环境
conda env list

# conda删除环境
conda remove -n myenv --all

# conda重新初始化(激活环境时遇到问题,执行该命令可能有效果)
conda init

在使用conda的时候,应当使用conda安装以及管理包,这种情况下避免混用pip是一个好的提议(使用conda时,总是优先使用conda安装,除非conda没有该安装包,才考虑pip)。

# conda安装包
conda install 安装包名

# conda搜索包
conda search 安装包名

# conda更新包
conda update 安装包名

# conda卸载包
conda remove 安装包名

# conda查看已安装包
conda list

# conda查看某个环境已安装包
conda list -n 环境名称

环境的导出与恢复

导出环境

conda env export > environment.yml

恢复环境

conda env create -f environment.yml

如果你希望在恢复环境的时候重新命名,那么通过-n选项,覆盖掉原本的包名即可

conda env create -f environment.yml -n myenv2

总结

在python中存在很多种创建虚拟环境的方式,甚至还远不止介绍的最常见的这三种,不过,通常这三种就能够满足大多数需要了,因此就不继续介绍更多种方法了。

如果你需要快速创建一个虚拟环境,对于虚拟环境的复杂操作要求并不高,那么使用自带的venv就足够了。

如果你希望能够对虚拟环境进行统一的管理,而不是每个项目都要包括一个虚拟环境的目录,那么可以使用virtualenv及其扩展virtualenvwrapper。

如果你不仅希望能够轻松管理安装包,还要进行python自身的版本切换,那么使用Miniconda或者Anaconda都是好的选择。

总之,你可以根据自己的需求,以及个人喜好进行选择,并没有一个固定的答案表明“哪一种是最好的”(但是目前virtualenv以及venv中应该优先考虑venv)。


http://www.kler.cn/news/366513.html

相关文章:

  • Flink Rest API
  • GPT打数模——电商品类货量预测及品类分仓规划
  • STM32 从0开始系统学习 1
  • 雷赛L6N伺服驱动器基本参数设置——EtherCAT 总线型
  • 【大模型理论篇】主流大模型的分词器选择及讨论(BPE/BBPE/WordPiece/Unigram)
  • 分享几个办公类常用的AI工具
  • 实战分享:Golang中实现高性能日志记录与错误跟踪的艺术
  • Linux:sort与uniq
  • JavaScript 第23章:WebSocket 与实时通讯
  • sql获取时间差
  • ssh连接报错
  • 【Java设计模式】1-15章
  • 【Linux 从基础到进阶】性能测试工具使用(sysbench、fio等)
  • Linux 部署 mysql
  • vue3可组合函数和hook的用法和使用场景区别
  • 使用React构建现代Web应用
  • <Project-11 Calculator> 计算器 0.3 年龄计算器 age Calculator HTML JS
  • 服务攻防之Redis数据库安全
  • 2024.10.25 软考学习笔记(知识点)
  • 通过Conda安装jupyter notebook
  • 【HTML】之form表单元素详解
  • 远程服务器训练网络本地读取TensorBoard
  • 【设备状态与人员动态的监测和呈现-会议签到的补充】
  • Android 开发 调节声音 SeekBar自定义样式
  • 【入门篇】2.9 系统滴答定时器 SysTick
  • 论文笔记:通用世界模型WorldDreamer