一、虚拟环境的由来和概念
1.在PyCharm中创建python项目时,需要配置python的运行环境,除了使用系统现有环境以外,还可以创建虚拟环境。
2.虚拟环境的创建是因为在实际开发中需要同期用到不同版本的python解释器,不同的第三方库以及同一个第三方库的不同版本。因此需要创建虚拟环境将项目环境与其他环境(系统环境、其他虚拟环境)隔离。
3.如果入门学习,可以先不设置虚拟环境,使用系统环境。
4.PyCharm中虚拟环境的创建有三种方式,virtualen、conda和pipen。
5.virtualen可以想象成是将当前系统环境创建一个隔离副本,使用的解释器和你安装
的是同一个(复印件); conda是根据你的需要,选择特定的python版本,然后从网上下载相关版本,并创建一个与系统环境不一样的新的环境,使用的解释器也和你安装的不是同一个; pipen和virtualen类似,也是在现有系统环境的基础上创建一个副本,但是pipen使用Pipfile替代virtualen的requirements.txt来进行依赖管理,更加方便。
上面第一个勾选是继承全局的包
第二个勾选是让该环境可以继续应用于其他项目
二、常用配置操作
win+R,输入cmd回车进入命令行
切换盘符:
//进入d盘
D:
//进入F盘
F:
对目录的其他操作:
cd /? //获取使用帮助
cd \ //跳转到硬盘的根目录
cd C:\WINDOWS //跳转到当前硬盘的其他文件
d: //跳转到其他硬盘
cd /d e:\software //跳转到其他硬盘的其他文件夹,注意此处必须加/d参数。否则无法跳转。
cd..//跳转到上一层目录
conda和pip管理包的常用操作
conda list //显示当前装有的依赖包
conda env list //显示当前装有的虚拟环境列表
conda activate xxx //进入xxx环境,后面打*号的是目前在的环境
pip show bayesian-optimization //查看bayesian-optimization的当前版本
pip show -f bayesian-optimization //使用这个命令会输出 bayesian-optimization 包的所有信息,包括文件路径、依赖关系等。
pip install -U package_name //pip更新package_name包
这里还有个很坑的点在于,powershell经常不显示当前环境,所以你也不知道当前的包装在哪个环境下,这里可以切换cmd来看到
powershell不显示当前环境名称
切换cmd后可以看到环境的改变
vscode上的切换方法
三、进一步理解以及用我遇到的问题实例分析
以下ppt来自https://www.bilibili.com/video/BV1qE411u7N7,直观地解释了虚拟环境各种概念的关系
另外一个操作教学视频https://www.bilibili.com/video/BV1V7411n7CM
遇到过的问题
如果都装在同个虚拟环境下,版本会冲突,pip会自动卸载旧版本,装载当前包需要的版本,比如我就碰到过
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. torchvision 0.9.0 requires torch==1.8.0, but you have torch 1.13.1 which is incompatible. torchaudio 0.8.0 requires torch==1.8.0, but you have torch 1.13.1 which is incompatible. nevergrad 0.4.2.post5 requires bayesian-optimization>=1.2.0, but you have bayesian-optimization 1.1.0 which is incompatible.
这就是说,torchvision 0.9.0 需要 torch1.8.0,但是环境下安装的是 torch 1.13.1,所以这两个包之间存在不兼容的依赖。同样,torchaudio 0.8.0 也需要 torch1.8.0,但是环境下安装的是 torch 1.13.1,所以这两个包之间也存在不兼容的依赖。此外,nevergrad 0.4.2.post5 需要 bayesian-optimization>=1.2.0,但是安装的是 bayesian-optimization 1.1.0,所以它们之间也存在不兼容的依赖。
环境变量是从头开始查找,找到后就直接运行,
而虚拟环境终端的环境变量多了︰/虚拟环境路径/Scripts
这就导致终端先查到找虚拟环境的python,然后直接运行
python.exe(解释器)的位置定下来了,虚拟环境就定下来了
项目移植方法
项目移植到新计算机中时,可以从虚拟环境中导出某一个虚拟环境下下的所有包
版权归原作者 工科狗Niko 所有, 如有侵权,请联系我们删除。