MacOS系统:激活conda虚拟环境后,无法调用虚拟环境中的python版本

问题描述

我遇到的问题是:

1.在终端执行 conda create -n generate_data python==3.8.10 这条命令后,安装阿里云百炼平台的dashscope库时发生错误,dashscope库要求python>=3.8.0,但我创建generate_data这个环境时,已经满足了该条件,接着破案

2.接着在终端输入python --version 这条命令查看python版本,结果返回的是3.6的版本,然后输入which python 这条命令查看python路径,返回的是全局的python路径,不是该anaconda中generate_data这个环境的路径,

3.解密:是因为我安装了3.6版本的python,且在.bash_profile 中添加了对 pythonpip 的别名配置,它会覆盖 conda 环境的 pythonpip 路径,使我始终使用全局的 Python 3.6。

问题解释

当你激活 conda 虚拟环境时,应该使用该环境中的 Python 版本。然而,由于你在 .bash_profile 中添加了对 pythonpip 的别名配置,它会覆盖 conda 环境的 pythonpip 路径,使你始终使用全局的 Python 3.6。

解决问题

1. 修改 .bash_profile 文件

你可以修改 .bash_profile 中的别名部分,确保在 conda 环境激活后,使用 conda 环境中的 pythonpip。一种解决方案是只在未激活 conda 环境的情况下设置这些别名。

可以使用 if 条件来检测 conda 是否已经激活,并根据情况选择是否设置别名。

  • 使用文本编辑器(如 vimnano)编辑 .bash_profile 文件:
  • 使用vim:
vim ~/.bash_profile
  • 使用nano:

nano ~/.bash_profile

  • 编辑 .bash_profile

  1. vimvi:按 i 进入插入模式,进行编辑。

  2. nano:直接编辑即可。
  3. 将你想要的内容粘贴到文件中。你可以将以下内容添加到 .bash_profile 文件中:


>>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/xxx/opt/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"  
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else     
    if [ -f "/Users/xxx/opt/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/Users/xxx/opt/anaconda3/etc/profile.d/conda.sh"
    else     
        export PATH="/Users/xxx/opt/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

# 仅当未激活conda环境时使用系统Python 3.6
if [ -z "$CONDA_DEFAULT_ENV" ]; then
    export PATH=${PATH}:/Library/Frameworks/Python.framework/Versions/3.6/bin
    alias python="/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6"
    alias pip="/Library/Frameworks/Python.framework/Versions/3.6/bin/pip3"
fi

  • 保存并退出

  1. 如果你使用 vim,先按 Esc,退出编辑模式,然后输入 :wq 保存并退出。
  2. 如果你使用 nano,按 Ctrl + O 保存,按 回车 确认,然后按 Ctrl + X 退出。

*移除可能存在的多余别名

另外,确保没有在其他地方定义类似的别名。你可以运行以下命令检查当前是否有别名:

unalias python

*或者直接查看所有别名:

alias

如果发现了多余的 python 和 pip 别名,可以通过 unalias python 和 unalias pip 移除。

2. 刷新 .bash_profile

在修改 .bash_profile 后,运行以下命令以应用更改:

source ~/.bash_profile
3. 激活 Conda 环境后再次检查

激活你的 Conda 环境:

conda activate generate_data
然后查看 python的路径和版本:
which python
python --version

如果设置正确,which python 应该会指向 Conda 环境中的 Python 解释器,而不是系统的 Python 3.6。例如,它可能会输出类似:

/Users/xxx/opt/anaconda3/envs/generate_data/bin/python

这会确保当你激活 Conda 虚拟环境时,它会优先使用 Conda 环境的 Python 解释器,而不是系统的 Python 3.6。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值