Could not find platform independent libraries <prefix> Consider setting $PYTHONHOME to <prefix>[:<ex
报错问题解决
·
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
更多推荐


所有评论(0)