ubuntu系统中pycharm解释器无法识别到conda虚拟环境,又或者虚拟环境中使用的python版本自动变更为系统基础环境中的python版本

项目场景:

为了方便在远程服务器ubuntu22.04系统中复现代码,建立了名为GMCF的虚拟环境,其中python版本为3.7,pytorch版本为1.12.0,无版本冲突


问题描述

       最初建立好虚拟环境后代码已经可以正常运行,但之后在服务器上新建了用户,为方便使用更改了一些配置文件,不知道是不是不小心动到了某个文件,还是因为系统重启了的原因。再次用我自己的用户登录进服务器之后,pycharm提示是否恢复记忆里之前的设置,因为前段时间服务器刚刚崩溃重装过,所以点击了否,结果进去后发现解释器识别不出之前建立好的虚拟环境了。

在终端输入

conda activate GMCF

激活虚拟环境后,输入python命令显示

并且解释器页面是空白的,识别不到安装的包

多次尝试后发现,只有选中python版本为3.10,才能够识别出安装的包。但仔细查看后发现,识别出来的包并不是虚拟环境下安装的那些,而是系统基础环境下安装的。


原因分析:

考虑可能是由于创建虚拟环境时,GMCF文件夹被默认放到了/home/user/.conda/evns文件夹下(其中user为自己的用户名),尝试更改路径无果后,我直接把文件复制到了opt/anaconda3/evns文件夹下,然后删掉了原文件,其中有一些文件路径的配置可能仍是错误的,从而导致了环境混乱。


解决方案:

  • 修改pyvenv.cfg文件

首先我按照网上的方法修改了/opt/anaconda3/envs/GMCF文件夹下pyvenv.cfg文件,代码如下

home = /opt/anaconda3/envs/GMCF
implementation = CPython
version_info = 3.7.13.final.0
virtualenv = 20.13.0
include-system-site-packages = true
base-prefix = /opt/anaconda3/envs/GMCF
base-exec-prefix = /opt/anaconda3/envs/GMCF
base-executable = /opt/anaconda3/envs/GMCF/bin/python3.7

修改前version版本为3.10.9,既基础环境中python版本,我这里直接修改成了虚拟环境当中的版本。需要注意的是,最后三行的路径一定要写正确,前两行是虚拟环境的所在路径,最后一行是虚拟环境当中python可执行文件的所在路径。

  • 修改python可执行文件及其配置文件

修改后还是不行,而且我发现如果不选择python3.7,而选择其他的python、python3的话被pycharm识别出来都是python3.10版本。到这里有了一点头绪,直接找到虚拟环境中所有的python可执行文件(我的是在/opt/anaconda3/envs/GMCF/bin文件夹下),查看后发现除了python3.7以外,其他都是指向python的软链接,且只有一个python3.7m是指向3.7版本的,其余全部指向3.10版本,故保留python3.7m其余全部删掉,然后将python3.7m及其配置文件python3.7m-config,更名为python及python-config。

  • 修改虚拟环境中配置文件

尝试后依旧无法识别,这个时候想起conda list命令列出的虚拟环境安装包都是正确的,也就是说应该都还在,只是没有被找到,所以打算重新复制虚拟环境到文件夹下,复制之前保险起见,先使用命令行

conda create -n vevn

 新建了一个名为vevn的虚拟环境,之后输入

conda env list

查看已有的虚拟环境,果然venv还是默认存放在了/home/user/.conda/evns文件夹下,后续按照网上教的方法更改了虚拟环境默认存放路径还是没有用,方法放在这里【Anaconda】Ubuntu 下 conda 修改虚拟环境默认存储位置_conda 更改环境路径 ubuntu_宇宙爆肝锦标赛冠军的博客-CSDN博客文章浏览阅读6.5k次,点赞10次,收藏41次。问题背景Linux 下,conda 默认的虚拟环境存储在 home 目录下,但 home 目录预先分配的内存有限,所有想将新建的 conda 虚拟环境存放在其他路径下,而又不影响之前的旧的虚拟环境的使用。举个例子。创建一个新的虚拟环境之前:创建了一个新的虚拟环境之后:新的虚拟环境占用了 4GB 的存储空间。查看路径信息查看 conda 信息:conda info输出内容如下:zth@zth-Desktop:~$ conda info active environment_conda 更改环境路径 ubuntuhttps://blog.csdn.net/qq_44324181/article/details/124526656

需要注意的是.conda文件夹是一个默认隐藏的文件夹,如果在/home/user文件夹下没有看到它,可以按一下快捷键ctrl+H就可以显示出所有隐藏文件。

环境暂时不能复制就只能继续手动解决, 于是对配置文件进行梳理,将python-config文件打开,凡是路径为/home/user/.conda/evns的地方通通修改为/opt/anaconda3/envs。

  • 建立软连接

改到这里我想到软链接的作用,既然更改存放路径没用,那就直接在/home/user/.conda/evns和/opt/anaconda3/envs之间建立一个软链接,这样虚拟环境就只能存放在anaconda3的文件夹里了,而.conda文件并不会真正占用内存。这里放上代码

ln -s /opt/anaconda3/envs /home/gnnu/.conda/envs

到这里pycharm终于能够正确识别我的虚拟环境了,同时也解决了虚拟环境的存放路径问题。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值