2025.02.18更新-----
置顶评论第一条提供了更简单的方法,大家可以优先尝试~
今天使用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
通过查看当前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