1 为什么需要创建虚拟环境?
在我们的开发工作中,如果同时开发多个项目,并且不同项目所使用的python版本可能不同,或者相同python版本,但是因为开发项目不同,所引用的第三方库可能会存在冲突。
为了解决这些问题,此时就需要我们在本地创建 conda 虚拟环境,用于对不同的python版本及对应的第三方库进行隔离。
2 搭建虚拟环境
2.1 创建虚拟环境
打开Anaconda Powershell Prompt
在命令窗口中输入
conda create --name pytorch_dev python=3.10
来创建虚拟环境
注意
- 其中 pytorch_dev 是自定义的虚拟运行环境的名称
- python=3.6 指定虚拟运行环境所使用的 python 版本
在安装过程中,如果出现 Proceed ([y]/n)? 提示是否安装需要的依赖包,输入y后,按回车继续。
当看到以下输出时,安装完成。
2.2 切换到虚拟环境
在命令行中输入conda env list
列出所有已安装的虚拟环境及在磁盘中对应的位置,此时我们是在base环境中,可看到下面有上一步中创建的 pytorch_dev
输入conda activate pytorch_dev
进入到指定的虚拟环境
可输入conda list
查看当前环境中,所有安装过的第三方库(包括python模块和非python模块);
可输入pip list
查看当前环境中,所有已安装的 python 模块,其内容要比使用 conda list 列出的少;
2.3 在虚拟环境中安装模块
2.3.1 pip 方式安装
- 配置pip国内镜像或私有镜像
如果是windows服务器,可在用户目录下创建pip文件夹,并在文件夹下创建pip.ini文件;
linux服务器则是在用户的home目录下,创建pip文件夹,并在文件夹下创建pip.conf文件。
打开该文件,将如下内容的清华镜像添加到文件中:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn
- 安装模块
以安装numpy模块为例,输入pip install numpy
即可
安装时,可以指定模块的版本号,比如输入pip install numpy==1.20.1
- 模块卸载
如果想卸载已经安装的模块,输入pip uninstall numpy
,卸载指令中不需要加版本号
需要注意的是:
使用 pip 方式安装模块时,会自动安装或更新所需要的依赖模块,以匹配当前安装模块的版本
通过 pip 卸载模块时,仅会卸载当前指定的模块,其它依赖模块不会被卸载。
2.3.2 conda 方式安装
- 配置国内镜像或私有镜像
在用户home目录下创建文件.condarc
,这是一个隐藏文件,需要让系统显示所有隐藏的项目才能看到。
将以下清华镜像的内容复制到文件中,并保存
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
channel_priority: flexible
- 安装模块
以安装numpy模块为例,输入conda install numpy
即可
同 pip 安装类似,也可以安装指定模块的版本,即 conda install numpy==1.16.5
- 模块卸载
如果想卸载已经安装的模块,输入conda uninstall numpy
,卸载指令中不需要加版本号
需要注意的是:
安装模块时,所需的依赖模块如果不仅是python模块,建议使用conda方式
conda 卸载模块时,会将当前模块,以及以当前模块为依赖的所有模块全部卸载