赞
踩
前提:安装好Anaconda并将其加到环境变量中:
如果你还没有安装,可以参考Anaconda安装-超详细版(2023)。
这里使用命令行进行操作,注意指令的开头都为conda。因为Anaconda创建虚拟环境,实际上是用conda这个包管理系统进行依赖关系的控制;Anaconda是一个包括了python解释器、conda、Jupyter Notebook、TensorFlow、PyTorch等多个软件包的集合,我们只需要用其中的conda。
conda create -n <环境名> python=<版本号>
在命令行中,使用
conda activate <环境名>
启用虚拟环境:
启动成功后,每一行开头会用括号标识出当前所在的虚拟环境,想退出虚拟环境就使用:
conda deactivate
在VSCode中,这里默认已经完成了VSCode中python环境的配置。启动VSCode(在任意工程中都可以):
使用顶部搜索栏的快捷键是Ctrl+p,先进入顶部搜索栏,再输入>,输入python select interpreter,选择该项:
在展开的列表显示了正在使用的解释器,同时可以选择已有的虚拟环境:
在PyCharm中,可以在创建项目时选定解释器(虚拟环境):
这里点击 "Add Interpreter",在接下来的选项卡中,最左侧选择第一项"Virtualenv Environment",而后在"Interpreter:"中选择目标解释器(Existing和New选项其实哪个都可以,并不重要)。如果下拉菜单中没有,就在右侧三个点中找到新创建的环境的路径,添加其下的python.exe。
若要对已经创建的项目更改环境,先打开设置:
在左侧选中"Project: <文件名>"项,而后选Python Interpretor,后续操作与上文类似。
可以在cmd中使用命令:
conda info
获取当前conda的相关信息,包括虚拟环境的保存地址:
按照显示信息,当前使用的是第一个目录即"D:\Anaconda\envs"。若要修改默认存储目录(该位置一般在C盘),可以修改配置文件".condarc",一般位于C:\Users\<用户名>目录下:
以记事本打开,修改envs_dirs项为想要的路径就可以了。
如果没有该文件,可以手动创建一个,然后重复以上步骤,命令为:
conda config --add channels r
另一种方案是在Anaconda Navigator的图形化界面中操作。选中左上角File中的Preference:
选择Config Conda:
在打开的文档中修改envs_dirs项即可:
由于境内访问下载速度慢,需要给conda添加国内的镜像源。可以在1.3中提到的配置文件.condarc里直接添加镜像源,在channels下按格式增加URL即可:
这里使用的清华源:
- channels:
- - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
- - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
- - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- - defaults
注意:既然使用了国内的镜像源,请不要开启网络代理或VPN,否则一样会卡顿或断连。
另外,在命令行中也可以添加镜像源:
conda config --add channels <镜像源URL>
然而,在conda创建的虚拟环境中,pip并不共享conda的镜像源,若需要用pip安装所需的包,可以使用如下指令(-i 后面添加镜像源):
pip install <包名> -i https://pypi.tuna.tsinghua.edu.cn/simple
如果你添加镜像源的格式如下:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/cloud/
那么极有可能出现错误
CondaHTTPError: HTTP 404 NOT FOUND for url https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud//xxx
这是一个简单的格式问题,镜像源的结尾不能为'/',因为conda搜寻资源时会自动加上'/',导致路径为"aaa//bbb",出现无效路径进而报错HTTP 404,如下修改即可:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/cloud
在虚拟环境中,推荐使用conda进行包的安装,因为conda能够解析和管理整个环境中的所有包和它们的依赖关系,pip安装包时只解析当前包的依赖关系,可能导致对所有包的依赖关系的破坏。当且仅当conda不含有对应资源时,才使用pip install。
尽管对于每个虚拟环境来说,它们使用的都是一样的、体外的conda install命令,但这不会导致虚拟环境之间的隔离失效。当你使用 Conda 安装包时,包会安装在当前激活的 Conda 虚拟环境中。每个 Conda 虚拟环境都有自己独立的包存储目录(/Lib/site-packages/),不同环境之间的包不会相互影响。
当你激活一个 Conda 虚拟环境时,以下事情会发生:
PATH
环境变量,使得当前环境的 Python 和已安装工具优先于系统中的版本。例如,激活环境 myenv
会将 ~/anaconda3/envs/myenv/bin
(或 Windows 上的 C:\Users\<YourUsername>\Anaconda3\envs\myenv\Scripts
) 添加到 PATH
中activate.d
目录中的脚本,以设置任何你定义的自定义环境变量。若需要每次启动虚拟环境时配置好相应的环境变量,建议修改activate.d中的脚本,这里不再赘述。建议在虚拟环境中直接安装相应的包或程序,不要从外部的系统中引入。
例如对于PyInstaller而言,PyInstaller关联于Python解释器的版本,如果在虚拟环境中引入主系统的PyInstaller,很可能因为解释器版本不一造成冲突,同时这种情况下PyInstaller分析的是主系统范围内的库,而不是虚拟环境中的依赖关系。
如果在虚拟环境中直接使用:
conda install pytorch
大概率会产生如下结果:
PyTorch提示CUDA不可用,此时无法将模型训练转移至GPU,也无法使用不支持在CPU上的模组。conda并不负责了解CUDA的依赖信息,解决这个问题的办法是手动安装正确版本的PyTorch。
请按照以下步骤安装PyTorch。
nvidia-smi
引入某些模块时,可能会出现如下报错:ImportError: DLL load failed while importing _ctypes: The specified module could not be found.
这个报错是由于某个原因导致的dll文件丢失,解决方法是在Anaconda\Library\bin文件夹下,将ffi.dll、ffi-7.dll、ffi-8.dll都拷贝一份,到当前使用的虚拟环境中。
需要拷贝到的目标地址即为该环境名的目录下:
若有任何错误,请在评论区指出,有其他问题也可以提问。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。