在实际项目开发中,我们通常会根据自己的需求去下载各种相应的框架库,如Scrapy、Beautiful Soup等,但是可能每个项目使用的框架库并不一样,或使用框架的版本不一样,这样需要我们根据需求不断的更新或卸载相应的库。直接对我们的Python环境操作会让我们的开发环境和项目造成很多不必要的麻烦,管理也相当混乱。如一下场景:
场景1:项目A需要某个框架1.0版本,项目B需要这个库的2.0版本。如果没有安装虚拟环境,那么当你使用这两个项目时,你就需要 来回 的卸载安装了,这样很容易就给你的项目带来莫名的错误;
虚拟环境的本质,就是在你电脑里安装了多个Python解释器(可执行程序),每个Python解释器又关联了很多个包、模块;项目代码在运行时,是使用特定路径下的那个Python解释器来执行。
虚拟环境的作用
很多开源库版本升级后API有变化,老版本的代码不能在新版本中运行
将不同Python版本/相同开源库的不同版本隔离
不同版本的代码在不同的虚拟环境中运行
见4小节
conda env list
conda env list
# conda environments:
Note: you may need to restart the kernel to use updated packages.
#
base * C:\Users\sun78\anaconda3
D:\pymol
可以看到虚拟环境名与路径,其中base *就是主环境
#查看帮助
conda env --help
#查看已安环境
conda env list #列出所有的虚拟环境
conda list --name [虚拟环境名] #查看指定虚拟环境下的package
conda list --name base # 查看默认主环境的package
#创建
conda create --name [虚拟环境名] [python的版本] [需要的包]
eg:
conda create --name myenv
conda create --name myenv python=2.7
conda create --name myenv pytohon=2.7 numpy scipy
#克隆
conda create --name [虚拟环境名] --clone [colne的环境]
eg:
conda create --name B --clone A #创建一个和A环境一样的虚拟环境B
conda create --name test3 --clone test2 # 克隆test2环境并命名为test3
conda create --name pdf2doi --clone base #克隆主环境base并命名为pdf2doi
#删除
conda remove --name [虚拟环境名] -all
# 激活/取消(默认的环境是base)
conda activate [虚拟环境名]
conda deactivate [虚拟环境名]
conda创建虚拟环境
由于使用conda create -n ippool python=3.8命令创建虚拟环境速度太满,可以使用Anaconda Navigator直接创建虚拟环境(参考Python数据分析开发环境如何搭建?)
激活或者切换虚拟环境
每次使用时先在anaconda prompt端口或者命令行激活环境,也可以切换到不同环境下,然后再进行一系列其它操作。以在windows powershell中切换为例,
切换到base虚拟环境还可以用下面的命令
conda activate root
pip freeze > ./requirements.txt
将环境依赖包信息导出到requirements.txt文件中,内容如下
python如何导出当前项目依赖包信息?
pip install pipreqs
然后进入到项目根目录下执行
pipreqs ./
查看当前镜像源
conda config --show channels
添加阿里云镜像源
conda config --add channels https://mirrors.aliyun.com/pypi/simple/
恢复原来默认镜像命令
conda config --remove-key channels
设置搜索时显示通道地址
conda config --set show_channel_urls yes
由于每一个环境对应一个spyder,创建新的虚拟环境后可以安装新的相对应的spyder,多个spyder可以共存。因此在克隆虚拟环境时最好基于主环境base进行克隆,因为anaconda初始安装时的主环境中已经包含了spyder相关依赖包,克隆后也就不要需要重新安装了。
pip install -r requirements.txt
参考资料
Python为什么要使用虚拟环境-Python虚拟环境的安装和配置-virtualenv_第一段代码的博客-CSDN博客_虚拟环境
anaconda查看conda主环境、虚拟环境的python执行路径_呆萌的代Ma的博客-CSDN博客_anaconda虚拟环境和主环境
Anaconda创建python环境,安装项目requirement中的依赖包_quxuexi的博客-CSDN博客_anaconda安装requirements
Anaconda-用conda创建python虚拟环境 - 知乎
conda使用清华镜像源创建虚拟环境失败_Wupke的博客-CSDN博客
Python数据分析开发环境如何搭建?(重要)
conda使用清华镜像源创建虚拟环境失败_Wupke的博客-CSDN博客
spyder如何切换python虚拟环境?_dew_142857的博客-CSDN博客_spyder使用虚拟环境