ubuntu:Could not find platform independent libraries
Consider setting $PYTHONHOME to [:<exec_prefix>]
ImportError: No module named site报错

  • conda激活虚拟环境候 python找不到虚拟环境安装路径 打开虚拟环境所在路径,发现虚拟环境下python正常,但是在命令端虚拟环境下显示系统python。
# ubuntu检查当前环境变量
echo $PYTHONHOME
echo $PYTHONPATH
  • 以上命令为空
  • 检查:
python --version
  • 显示系统的python
 which python
  • 输出:
 /bin/usr/python # 显示系统python
  • 检查
conda init bash  
  • 命令执行后 系统无任何更新
  conda init bash
no change     /home//anaconda3/condabin/conda
no change     /home//anaconda3/bin/conda
no change     /home/anaconda3/bin/conda-env
no change     /home//anaconda3/bin/activate
no change     /home//anaconda3/bin/deactivate
no change     /home/anaconda3/etc/profile.d/conda.sh
no change     /home//anaconda3/etc/fish/conf.d/conda.fish
no change     /home/byy/anaconda3/shell/condabin/Conda.psm1
no change     /home//anaconda3/shell/condabin/conda-hook.ps1
no change     /home//anaconda3/lib/python3.7/site-packages/xontrib/conda.xsh
no change     /home//anaconda3/etc/profile.d/conda.csh
no change     /home//.bashrc
No action taken.
  • Conda 认为你已经初始化过 bash,所以没有修改 .bashrc。

  • 手动检查并修复 .bashrc 中的 Conda 初始化代码

  • 运行:

cat ~/.bashrc | grep -A 10 -B 2 "conda"
  • 你应该看到类似以下内容(这是 conda init 应该写入的代码)
__conda_setup="$('/home/byy/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    export PATH="/home/byy/anaconda3/bin:$PATH"
fi
unset __conda_setup
  • 看到了这段代码,说明 conda init 确实写入过。

  • 检查:

which python
echo $PATH | tr ':' '\n' | head -5
which python
/usr/bin/python
(voice) byy@byy-pc:build$ echo $PATH | tr ':' '\n' | head -5
/usr/bin
/usr/local/cuda/bin
/usr/bin
/usr/local/cuda/bin
/home/byy/anaconda3/envs/voice/bin
  • 说明当前 python 命令调用的是系统 Python,而不是 Conda 虚拟环境 voice 中的 Python。你的 PATH 环境变量中虽然包含了 voice/bin,但它排在第 5 位,而 /usr/bin 在最前面。

  • 根本原因:
    /usr/bin 在 PATH 的最前面,优先级高于 voice/bin,所以当你运行 python 时,系统先找到了 /usr/bin/python,而不是 voice 环境中的 Python。

  • 尽管你运行了 conda activate voice,Conda 试图把 /home/byy/anaconda3/envs/voice/bin 加到 PATH 前面,但:

✅ 它确实加了(你在第 5 行看到了)
❌ 但它没有成功置顶,被其他路径(如 /usr/bin)覆盖了
检查 .bashrc 中是否有“手动修改 PATH”的代码

 执行tail -n 30 ~/.bashrc
 输出:
 
  fi
fi

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

# cuda envirment
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda:$CUDA_HOME
export PATH=/usr/bin:$PATH
# java envirmet
#export JAVA7_HOME='/usr/lib/jvm/java-8-openjdk-amd64'
#export JAVA11_HOME='/usr/lib/jvm/java-11-openjdk-amd64'

#export JAVA_HOME=$JAVA11_HOME
#export CLASSPATH=.:$JAVA_HOME/lib::$CLASSPATH
#export PATH=$JAVA_HOME/bin::$PATH
  • 删除或注释掉这行有害的代码:|
export PATH=/usr/bin:$PATH
nano ~/.bashrc
  • 改为注释掉(前面加 #):
# export PATH=/usr/bin:$PATH

步骤 2:保存并退出
Ctrl + O → 回车(保存)
Ctrl + X(退出)

- 重启电脑 重点!!!

source ~/.bashrc
  • 验证是否修复
# 检查 PATH 前几项
echo $PATH | tr ':' '\n' | head -5
#虚拟环境排在第一位
which python
/home/byy/anaconda3/envs/voice/bin/python
#显示自己的虚拟环境python
Logo

一站式 AI 云服务平台

更多推荐