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

自带venv

免安装直接使用

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

bash 复制代码
# 创建虚拟环境
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保存了当前安装的所有包,就可以下一次在其他地方,进行恢复了。

bash 复制代码
# 保存所有的安装
pip freeze > requirements.txt

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

使用virtualenv

通过pip安装使用

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

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

使用pip安装

bash 复制代码
# 安装
pip install virtualenv

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

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

bash 复制代码
virtualenv myenv

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

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

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

# 退出虚拟环境
deactivate

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

virtualenvwrapper扩展

通过pip安装

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

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

常用命令

bash 复制代码
# 创建新的虚拟环境
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一项(选择系统变量还是用户变量根据个人需求),点击"编辑",在编辑环境变量窗口中点击"新建",然后添加安装路径。

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

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

conda命令

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

bash 复制代码
conda update conda

conda常用指令

bash 复制代码
# 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)。

bash 复制代码
# conda安装包
conda install 安装包名

# conda搜索包
conda search 安装包名

# conda更新包
conda update 安装包名

# conda卸载包
conda remove 安装包名

# conda查看已安装包
conda list

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

环境的导出与恢复

导出环境

bash 复制代码
conda env export > environment.yml

恢复环境

bash 复制代码
conda env create -f environment.yml

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

bash 复制代码
conda env create -f environment.yml -n myenv2

总结

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

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

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

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

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

相关推荐
LKID体1 小时前
Python操作neo4j库py2neo使用(一)
python·oracle·neo4j
小尤笔记1 小时前
利用Python编写简单登录系统
开发语言·python·数据分析·python基础
FreedomLeo11 小时前
Python数据分析NumPy和pandas(四十、Python 中的建模库statsmodels 和 scikit-learn)
python·机器学习·数据分析·scikit-learn·statsmodels·numpy和pandas
007php0072 小时前
GoZero 上传文件File到阿里云 OSS 报错及优化方案
服务器·开发语言·数据库·python·阿里云·架构·golang
Tech Synapse2 小时前
Python网络爬虫实践案例:爬取猫眼电影Top100
开发语言·爬虫·python
一行玩python2 小时前
SQLAlchemy,ORM的Python标杆!
开发语言·数据库·python·oracle
数据小爬虫@3 小时前
利用Python爬虫获取淘宝店铺详情
开发语言·爬虫·python
编程修仙4 小时前
Collections工具类
linux·windows·python
芝麻团坚果4 小时前
对subprocess启动的子进程使用VSCode python debugger
linux·ide·python·subprocess·vscode debugger
EterNity_TiMe_4 小时前
【论文复现】神经网络的公式推导与代码实现
人工智能·python·深度学习·神经网络·数据分析·特征分析