我最近更新了 python 至 python@3.8 通过 Homebrew 软件。
然后我注意到我的 python 脚本无法链接到我之前使用 pip 安装的全局 python 包(全局安装的包,而不是在虚拟环境中)。
这让我陷入了理解如何在 macos 上设置 python 的兔子洞,我有几个问题。
brew list | grep python
我得到以下列表python
python3
python@3.8
我可以看到 python@3.8 正确符号链接(symbolic link)为 /usr/local/bin/python3 但自从查看 以来,我不知道上面列表中的 python 和 python3 是什么/usr/local/地窖我可以看到我有一个空的/usr/local/Cellar/python 目录和 /usr/local/Cellar/python3 符号链接(symbolic link)到它的目录。我可以删除这两个文件夹吗?调查 系统路径当我执行 /usr/bin/python3 ,我可以看到它是 Xcode 安装的某种 python,因为它正在各种 Xcode.app 目录中寻找库。
由于我的/usr/local/bin 在我的 PATH envt 变量的顶部,这个 python3 永远不会被调用,但我想知道为什么我需要它以及我是否可以摆脱它。
我想很多这些问题的答案是使用虚拟环境,我已经奇迹般地避免了这么久......虽然希望能帮助理解上述内容。
编辑:运行
brew info python
或 brew info python3
返回相同的东西python@3.8: stable 3.8.3 (bottled)
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/python@3.8/3.8.3_2 (4,268 files, 65.5MB) *
Poured from bottle on 2020-07-12 at 23:19:08
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/python@3.8.rb
最佳答案
我在运行 Python 3.9 的系统上遇到了类似的问题
我最初没有运行最终命令(仅 --dry-run
),因为一切似乎都很好,但正如安装期间所建议的那样,使用 brew link
破坏并创建 需要新的符号链接(symbolic link)。
% brew link --overwrite --dry-run python@3.9
Would remove:
% brew link --overwrite python@3.9
Linking /usr/local/Cellar/python@3.9/3.9.1_1... 23 symlinks created
%
正如 MisterMiyagi in the comments 所建议的那样,这是通过
brew doctor
发现的...
Warning: You have unlinked kegs in your Cellar.
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
python@3.9
关于python-3.x - Homebrew python@3.8更新后重新安装python包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62881878/