今天将 macOS Monterey 更新到 12.6 后,我所有的 Python 项目/脚本都停止工作。
在我的项目的 venv 之一中检查 Python 二进制文件的符号链接,我看到原始文件是:
/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/bin/python3.9
哪个不在路径列表中!? ????
今天安装了 macOS 更新吗?
似乎虚拟环境中所有到Python的符号链接all我的 VS Code 项目现在指向上面的二进制文件,并且none的项目不再有效,全部都与ModuleNotFoundError
.
我怎样才能让我的所有项目再次运行?
背景/细节:
.bash_profile
:
# Setting PATH for Python 3.8
PATH="/Library/Python/3.8/bin:${PATH}"
export PATH
.zprofile
:
PATH="/Library/Python3.9/bin:${PATH}"
export PATH
eval "$(/opt/homebrew/bin/brew shellenv)"
.zshrc
:
export PATH=$PATH:/Users/xxxx/Library/Python/3.8/bin
脚本在激活 venv 的情况下运行((venv)...
),确认为which python
它准确地返回 venv 中 Python 的路径(尽管符号链接到奇怪的路径)。
当尝试(重新)安装这些库时,在 venv 仍然处于活动状态的情况下,它们会安装在 root Python 中,并出现以下警告:
WARNING: The scripts f2py, f2py3 and f2py3.9 are installed in '/Users/xxxxxx/Library/Python/3.9/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
我在用着/bin/zsh
在 VS Code 中运行时。与独立终端窗口相同。
我在上面共享了 Bash,如路径中所列。
tried:
echo $PATH
返回(为了可读性而编辑):
/opt/homebrew/bin:
/opt/homebrew/sbin:
/Library/Python3.9/bin:
/usr/local/bin:
/usr/bin:
/bin:
/usr/sbin:
/sbin:
/usr/local/MacGPG2/bin:
/Library/Apple/usr/bin:
/Users/xxxx/Library/Python/3.8/bin
notes:
- 最后一条路径(
/Users/..
) 似乎是 Bash 使用的,但不是 Zsh/VS Code/ 使用的。不过,这与更新之前一样有效。
- 需要添加缺失的路径:
/Users/xxxx/Library/Python/3.9/bin
一项一项检查路径:
-
/opt/homebrew/bin
: 文件夹中没有 Python 二进制文件
-
/opt/homebrew/sbin
: 文件夹中没有 Python 二进制文件
-
/Library/Python3.9/bin
: 文件夹Python3.9
不存在
-
/usr/local/bin
: /usr/local/bin/python
发现+++
-
/usr/bin
: /usr/bin/python3
发现+++
-
/bin
: 文件夹中没有 Python 二进制文件
-
/usr/sbin
: 文件夹中没有 Python 二进制文件
-
/sbin
: 文件夹中没有 Python 二进制文件
-
/usr/local/MacGPG2/bin
: 文件夹中没有 Python 二进制文件
-
/Library/Apple/usr/bin
: 文件夹中没有 Python 二进制文件
-
/Users/xxxx/Library/Python/3.8/bin
: 文件夹中没有 Python 二进制文件????
- 未返回
echo $PATH
/ 需要添加:/Users/xxxx/Library/Python/3.9/bin
文件夹中也没有 Python 二进制文件????
- 未列出,但现在在所有项目中进行符号链接:
/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/bin/python3.9