激活conda虚拟环境后,无法调用虚拟环境中的python版本(或无法调用当前虚拟环境的包)

今天使用conda创建了一个新环境(python3.8),命名为wj:

(base) [root@cqu-3 ~]# conda env list
# conda environments:
#
base                  *  /root/anaconda3
tyh                      /root/anaconda3/envs/tyh
wj                       /root/anaconda3/envs/wj

但当我激活这个环境时发现,已经安装在这个虚拟环境的包显示找不到,我查看了python版本,发现不是我安装的python3.8,而是默认的python3.6.5:

(base) [root@cqu-3 ~]# conda activate wj
(wj) [root@cqu-3 ~]# python --version
Python 3.6.5

通过vscode我们可以看到我确实是指定了当前环境wj中的python版本为3.8.10
激活conda虚拟环境后,无法调用虚拟环境中的python版本(或无法调用当前虚拟环境的包)_第1张图片
通过查看当前python的位置,可以发现当前使用的python并不是我的虚拟环境中的python,说明系统默认的python地址是以下这个:

(wj) [root@cqu-3 ~]# which python
/root/.pyenv/shims/python

需要修改python的默认地址才可以,在根目录下修改.bash_profile文件(使用ls -a命令可以显示前面带.的隐藏文件)

(wj) [root@cqu-3 ~]# vim .bash_profile 

在如下界面按i,可进入编辑模式进行编辑:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

. /opt/idagent/conf/agent-env.sh
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

将其中的如下行修改为:(我的anaconda名称为anaconda3,因为我的python位于~/anaconda3/envs/wj/bin/python,大家根据自己的实际名称)

export PYENV_ROOT="$HOME/anaconda3"

修改完后按Esc键退出编辑模式,然后输入:wq进行保存
然后输入以下命令让该文件生效:

(wj) [root@cqu-3 ~]# source .bash_profile 

这时候查看当前python版本:

(wj) [root@cqu-3 ~]# python --version
Python 3.8.10

查看当前python的位置,可以发现已经变成了当前虚拟环境下的python位置:

(wj) [root@cqu-3 ~]# which python
/root/anaconda3/envs/wj/bin/python

当我们切换另外的虚拟环境时,python可以自动切换为其他虚拟环境的python:

(wj) [root@cqu-3 ~]# conda activate tyh
(tyh) [root@cqu-3 ~]# python --version
Python 3.7.10
(tyh) [root@cqu-3 ~]# which python
/root/anaconda3/envs/tyh/bin/python

你可能感兴趣的:(服务器,python环境)