当我在终端 (macOS) 中运行 echo $PATH 时,它返回/opt/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
。我已经卸载了 anaconda,我的 opt 目录和 .bash_profile 都是空的。当我运行 which python 命令时,它返回:/usr/local/bin/python
。在类似的问题中,问题可以通过从 PATH 环境变量中删除 anaconda 目录来解决,但我的目录~/.bash_profile
是空的。
Python 在终端中运行良好,但我猜 PATH 首先会遍历 Anaconda 文件所在的空目录?我猜这不是最佳选择,并且将来可能会产生问题?
戈登·戴维森的解决方案:
我正在运行 zsh。以下是我在 z.profile 中找到的内容:
# Setting PATH for Python 3.9
# The original version is saved in .zprofile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
export PATH
这是我在 .zshrc 中找到的内容(当我尝试编辑它时,它说我“不拥有该文件”并且应该复制它进行编辑):
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/opt/anaconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/opt/anaconda3/etc/profile.d/conda.sh" ]; then
. "/opt/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/opt/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
我找不到~/.zlogin
或。~/.zshenv
但这~/.profile
是我在 中找到的内容paths.d
(不确定文件“100-rvictl”是什么):
Last login: Mon Sep 6 17:21:00 on ttys001
me@mahmouds-mbp-2 ~ % /etc/paths.d/100-rvictl ; exit;
/etc/paths.d/100-rvictl: line 1: /Library/Apple/usr/bin: is a directory
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
[Process completed]
答案1
看起来剩余的PATH
条目来自您的~/.zshrc
文件。整个“conda 初始化”部分(从# >>> conda initialize >>>
到# <<< conda initialize <<<
)应该被删除。如果这是文件中唯一的东西,您可以删除整个文件。但如果还有其他东西,您应该编辑它,最好先修复它的所有权。
修复文件所有权:您可以通过以下方式获取文件所有权:
sudo chown "$UID" ~/.zshrc
...但可能还有其他文件存在同样的问题,因此我建议运行ls -l ~
以列出主文件夹中的所有文件,并将该修复程序应用于不属于您的其他文件。对于文件夹,也使用sudo chown -R "$UID" ~/foldername
以获取其内容。
顺便说一句,所有权问题可能是由于某些安装程序或安装脚本以 root 身份运行(即使用sudo
)而不是以您的用户 ID 运行,因此创建了由 root 而不是您拥有的文件。
哦,关于那个/etc/paths.d/100-rvictl
文件:看起来你双击了它,试图将其作为脚本运行,但实际上并没有起作用(它不是脚本)。但从内容来看,它与此无关,应该不是问题。