python-3.x - Homebrew python@3.8更新后重新安装python包

标签 python-3.x macos homebrew

我最近更新了 python python@3.8 通过 Homebrew 软件。
然后我注意到我的 python 脚本无法链接到我之前使用 pip 安装的全局 python 包(全局安装的包,而不是在虚拟环境中)。
这让我陷入了理解如何在 macos 上设置 python 的兔子洞,我有几个问题。

  • 由 homebrew 安装的 pip 现在将安装 中的所有软件包/usr/local/lib/python3.8/site-packages .
  • 这是否意味着我需要重新安装所有曾经存在(现在仍然存在)在 中的 python 包/usr/local/lib/python3.7 ?之后我应该删除后一个目录吗? (就此而言,我可以看到我还有一个 /usr/local/lib/python3.6 目录)
  • 当下一个 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)到它的目录。我可以删除这两个文件夹吗?
  • 最后,查看这一切,我惊讶地发现 中存在一个 python3 可执行文件。/usr/bin .
    调查 系统路径当我执行 /usr/bin/python3 ,我可以看到它是 Xcode 安装的某种 python,因为它正在各种 Xcode.app 目录中寻找库。
    由于我的/usr/local/bin 在我的 PATH envt 变量的顶部,这个 python3 永远不会被调用,但我想知道为什么我需要它以及我是否可以摆脱它。

  • 我想很多这些问题的答案是使用虚拟环境,我已经奇迹般地避免了这么久......虽然希望能帮助理解上述内容。
    编辑:运行brew info pythonbrew 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/

    相关文章:

    python - 递归子生成器调用不执行

    python - 在 Django Rest Framework 中正确更新嵌套序列化器

    node.js - brew 卸载 Node 错误 Alpine 脉

    opencv - 无法在 mac osx 上使用brew或make安装opencv

    python-3.x - Gtk.CssProvider.load_from_data TypeError : Item 0: Must be number, not str

    macos - applescript 在 cmd+tap 按键上调用 alt 按键以切换到隐藏窗口,而无需实际按 alt

    linux - VNC Mac OS X 和 Linux 连接被计算机拒绝

    objective-c - 高效获取进程和名称列表

    macos - 尝试在 macOS High Sierra 上使用 Brew 安装 rsync 时出错

    Python 多处理故障排除