随笔 - 65  文章 - 0 评论 - 0 阅读 - 28566
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

一 应用场景

python开发的虚拟环境(Virtual Enviroment),主要是以目录作为单位分别保存不同的python解释器与第三方模块的一种技术在开发或者学习中,我们会遇到在一台开发机子中,运行多个项目的情况,有时候还会出现每个项目的python解析器或者依赖包的版本有差异。使用虚拟环境,可以让一台开发机子,同时安装多个不同的python解释器,也可以实现同时安装同一个模块的多个不同版本。

 

Python虚拟环境常见的工具为:

  • Virtualenv
  • Anaconda
  • venv
  • pipenv

二 虚拟环境Virtualenv

 

1 安装虚拟环境的依赖库

pip install virtualenv

 

2 安装虚拟环境统一管理工具,一个外壳操作库, 提供了一系列的全局命令

pip install virtualenvwrapper

 

3 配置环境变量

# /etc/profile末行加入以下两行
export workon_home=/data/envs # 设置 virtualenv 的统一管理目录
export virtualenvwrapper_python=/usr/bin/python3 # 指定python解释器 # 终端执行 whereis python 可查看
source /etc/profile # 环境变量生效

 

4 执行 virtualenvwrapper 安装脚本

source /usr/bin/virtualenvwrapper.sh  # 可通过find / -name virtualenvwrapper.sh 查看具体位置

 

5 创建一个 my_env 虚拟环境,并切换到当前虚拟环境。一个虚拟环境就是一个目录 

mkvirtualenv my_env

 

6 在虚拟环境内部退出环境 

deactivate

 

7 删除指定名称的虚拟环境[慎重使用,删除前建议备份]

rmvirtualenv <虚拟环境名称>

 

Virtualenv的缺点:

  1. 虚拟环境中的Python解释器必须是当前操作系统中已经存在的。

  2. 每创建一个新的虚拟环境目录,都会把解释器多复制一份到当前解释器目录下。

 

Virtualenv相关命令:


命令
参数选项描述
workon   列出当前操作系统中所有的python虚拟环境(一个虚拟环境就是一个目录)
workon <虚拟环境名称>   进入指定名称的虚拟环境中, 路径左边就会出现虚拟环境名称, 在有虚拟环境的名称时,终端下所有基于pip安装的python包和python环境都会保存对应虚拟环境的目录下
mkvirtualenv <虚拟环境名称>

-p 指定python解析器版本

创建一个指定名称的虚拟环境,一个虚拟环境就是一个目录.这个目录里面默认就有一个独立python解释器。

deactivate   在虚拟环境内部退出环境
pip freeze   列出当前环境下开发者使用pip安装的包列表,作用类似于pip list,但是比pip list好用
pip freeze > ./requirements.txt requirements.txt是约定的.强烈建议固定这个名字 备份虚拟环境中的所有依赖包列表并保存到执行名称的文件中,这个文件名一般就叫requirements.txt
pip install -r ./requirements.txt   还原备份的虚拟环境包列表,pip 会安装会读取requirements.txt文件中每一行内容,并根据内容安装对应版本的python包。
rmvirtualenv <虚拟环境名称>   删除指定名称的虚拟环境[慎重使用,删除前建议使用requirements.txt备份]

 

三 虚拟环境Anaconda【重点】

 

conda是为了解决传统的虚拟环境问题而出现的虚拟环境管理工具,conda在virtualenv基础上,提取了公共代码保存到一个公共目录,独立代码分离开来的模式。解决了virtualenv的解释器复制问题,同时conda还可以通过自动管理python解释器的功能,允许我们创建虚拟环境目录时自由的选择不同的python解释器版本。

conda一共有2个版本:miniconda与anaconda。anaconda是conda的完整版本,内置了将近300个关于服务端开发,人工智能,数据分析,爬虫,测试,运维等常用第三方模块。而miniconda则是conda的简单版本,内置了将近30个常用第三方模块。

 

conda下载地址:https://www.anaconda.com/products/distribution#Downloads

发行版本:https://repo.anaconda.com/archive/

conda还提供了一个类似pypi的包模块管理库,可以让我们搜索到10年前的包:https://anaconda.org/

 

创建一个 my_env 虚拟环境

conda create -n <虚拟环境名称> python=3.10# 创建一个 my_env 虚拟环境,设置当前虚拟环境的python版本,如果本地没有会自动下载安装
''' 参数: <包名1>==<版本号> <包名2> ... <包名n> # 表示创建虚拟环境时同时安装一个或多个指定第三方包 

--clone <旧的虚拟环境名称> # 克隆虚拟环境 '''

 

2 进入/切换到指定名称的虚拟环境

conda activate <虚拟环境名称>

 

3 安装Django基本模块

pip install django==4.0 -i https://pypi.douban.com/simple/

 

4 在虚拟环境内部退出环境

conda deactivate

 

5 删除指定名称的虚拟环境[慎重使用,删除前建议备份]

conda remove -n <虚拟环境名称> --all

 

6 卸载 anaconda的方式

sudo rm -rf /xx/anaconda3 # 查看anaconda的安装目录 conda info | grep 'base environment'
# 打开用户家目录下的环境变量信息文件,并删除文件中与conda相关的环境变量信息。
sudo vim ~/.bashrc

 

conda相关命令

命令描述
conda -V 查看conda版本
conda info 查看当前Anaconda的系统配置信息
conda env list 列出当前系统中所有虚拟环境,环境列表左边*号表示当前所在环境, 也可以使用conda info -e查看,注意:conda安装到本地以后,默认就提供了一个全局版本的虚拟环境,叫base
conda create -n <虚拟环境名称> python=<python版本号> <包名1>==<版本号> 新建虚拟环境,-n表示设置当前虚拟环境的名称, python表示设置当前虚拟环境的python版本,如果本地没有会自动下载安装 表示创建虚拟环境时同时安装一个或多个指定第三方包
conda create -n <新的虚拟环境名称> --clone <旧的虚拟环境名称> 克隆虚拟环境
conda activate <虚拟环境名称> 进入/切换到指定名称的虚拟环境,如果不带任何参数,则默认回到全局虚拟环境base
conda deactivate 退出当前虚拟环境
conda install -n <虚拟环境名称> <包名1>==<版本号> 在虚拟环境外部,给指定虚拟环境安装或更新一个或多个指定包 。conda自带库文件,如果是最新的版本的包,conda install无法安装,则可以使用pip install安装

conda install <包名1>==<版本号>

不要调用pip安装(联网安装),否则会变成全局安装

在虚拟环境内部,给当前虚拟环境安装或更新一个或多个指定包。
conda install <包名1>==<版本号> -c conda-force 在虚拟环境内部,指定下载服务器源给当前虚拟环境安装或更新一个或多个指定包
conda remove -n <虚拟环境名称> <包名1>==<版本号> 在虚拟环境外部,给指定虚拟环境卸载一个或多个指定包
conda remove <包名1>==<版本号> 在虚拟环境内部,给当前虚拟环境卸载一个或多个指定包
conda remove -n <虚拟环境名称> --all 删除指定虚拟环境,并卸载该环境中所有指定包
conda env export > environment.yaml 导出当前虚拟环境的Anaconda包信息到环境配置文件environment.yaml中
conda env create -f environment.yaml 根据环境配置文件environment.yaml的包信息来创建新的虚拟环境
conda update --prefix <anaconda安装目录> anaconda 更新Anaconda的版本。 先回到base环境,再执行conda update,系统会自动提示完整并正确的命令 如果上述方法不行,只能卸载现有的conda,然后下载最新版本安装。
posted on   大明花花  阅读(707)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示