主页
文章
分类
标签
关于
conda与Python
python的虚拟环境
发布于: 2024-11-24   更新于: 2024-11-24   收录于: Python , conda
文章字数: 1815   阅读时间: 4 分钟   阅读量:

使用conda进行python虚拟环境的搭建


查看当前conda环境

有两种方式:

1
2
conda info --envs
conda env list

构建一个新的conda环境

1
conda create -n env_name

此时会创建一个与base环境相同的python环境

  • 指定python版本
1
conda create -n env_name python==3.8

此时会创建一个python3.8版本的python环境

  • 指定位置安装(多用于window下防止c盘爆炸,linux没必要)
1
conda create --prefix=D:/envs/pytorch python=3.8

此时会在D:/envs/下创建一个名为pytorch的conda环境 :当环境没安装在默认路径下,在conda中不会显示其环境名称,需要用路径来打开 如果想用名称打开,可以将当前路径添加到conda中:

1
conda config --add envs_dirs D:/envs

打开环境

有环境名称的:

1
conda activate env_name

利用路径打开环境:

1
conda activate D:/envs/pytorch

关闭当前运行环境

在base环境下开启其他环境,可能会出现环境叠加的情况,所以可以先退出所有环境,再打开指定环境

1
conda deactivate

删除环境

1
2
conda remove -n env_name --all
conda remove -p D:/envs/pytorch --all

pip镜像源

新版ubuntu要求用https源

不推荐永久修改镜像源,因为可能出问题,可以在pip后加上-i 镜像源来单次指定镜像源


windows下修改默认环境安装路径

输入命令conda config --show查看conda配置,会显示默认配置,其中envs_dirs为conda环境安装路径 接下来让我们修改它,有两种方式 第一种修改.condarc文件: 找到C:\Users\your_name\.condarc,找到envs_dirs,修改为想要修改的路径,保存退出,重启conda即可,比如:

1
2
envs_dirs:
  - D:\Anaconda3\envs

让我们输入conda config --show,就会显示修改后的配置

第二种方法: 或者在Anaconda Promp执行命令:conda config --add envs_dirs newdir #增加环境路径newdir

1
conda config --add envs_dirs D:\Anaconda3\envs

现在我们新创建一个虚拟环境验证,发现创建了在了D:\Anaconda3\envs:可能不能用,原因是你没有D:\Anaconda3\envs的权限,所有不会安装到那里,如果你换到有权限的文件夹就可以了,或者更改这个文件夹的权限。 比如修改D:\Anaconda3\envs下所有权限给当前user,具体修改方式看如下参考:

参考https://blog.csdn.net/qq_36455412/article/details/125347552

如果还是不行,就在创建环境的时候手动添加路径吧,然后再将路径添加到conda中


有时候会出现新构建的虚拟环境中通过’pip list’查看时会出现其他的未安装过的包

通过python -m site来查看python中的基本路径设置

pythong_site

原因:pip install 背后实质上是通过 setup.py 来安装python包的,而 setup.py 中用到 setuptools,安装过程中会用到sys.path信息。虽然上面sys.path中的信息包含 envs/pytorch 这个虚拟环境路径。但sys.path中的目录排序是有优先级顺序的(envs/pytorch 路径排在.local后面),再者,当前用户环境目录也是 .local/, 且会最优先用户环境目录进行安装目录的确认;即使用默认的USER_BASE和USER_SITE去使用pip安装,在默认情况路径下可能会存在以前同版本python安装的包,所以会多出来未安转过的包

解决方法:找到/lib/pythonx.x/site.py,修改对应路径

USER_load

此时再次查看python中的基本路径设置

site 这样路径就改好了,以后pip下来的包会默认安装在该路径,而不会与默认路径冲突。

:修改的前提是已经进入虚拟环境,这样修改的是虚拟环境下的配置,而不会影响到全局 修改当前环境下的 site.py 文件

bug:经过测试,在ubuntu20.04系统下(其他系统暂时没有尝试),发现不能直接更改conda环境下yourenv/Lib/site.py文件,否则新建的环境系统路径里面会有你改的路径,具体体现就是如果你新建一个环境,改了它的site.py中的USER_SITE和USER_BASE,那么你再新建一个环境,这个环境中的USER_SITE和USER_BASE也是你改的那个!!!这样新环境里面使用pip也能读到上一个环境中安装的库~

参考: https://blog.csdn.net/weixin_44456692/article/details/122036209 https://blog.csdn.net/chd_lcj/article/details/124943219 ,里面还有另一种方法,我这就不介绍了


linux下有时会出现环境叠加的情况

使用另一个环境的时候发现还是base环境的python。 先退出当前环境conda deactivate直到没在任意环境下,在进入想要进入的环境