我最近通过homebrew升级了python@3.8。
然后我发现我的Python脚本无法链接到我之前使用pip(全局安装而非虚拟环境内安装)安装的全局Python包。
这让我深入理解了macOS上Python的设置,我有几个问题。
由homebrew安装的pip现在会将所有软件包安装在/usr/local/lib/python3.8/site-packages中。
- 这是否意味着我需要重新安装我曾经放置在/usr/local/lib/python3.7中(现在仍在那里)的所有Python包?我应该删除后者吗?(同样地,我还看到了一个/usr/local/lib/python3.6目录)
- 当下一次Python更新到来时,以后管理这些的有效方法是什么?为每个项目创建虚拟环境(我对虚拟环境的使用并不很熟悉)?
当我运行
brew list | grep python
时,我得到以下列表:
python
python3
python@3.8
我可以看到Python@3.8正正确地作为/usr/local/bin/python3符号链接,但我不知道上面列表中的python和python3是什么,因为在/usr/local/Cellar中查看,我发现我有一个空的/usr/local/Cellar/python目录和一个它所链接到的/usr/local/Cellar/python3目录。我可以直接删除这两个文件夹吗?
- 最后,在研究所有这些内容时,我惊讶地发现了一个python3可执行文件位于/usr/bin目录下。 当我执行/usr/bin/python3时查看sys.path,我可以看到这是一种由Xcode安装的Python版本,因为它正在寻找各种Xcode.app目录中的库。 由于我的/usr/local/bin处于PATH环境变量的顶部,因此将永远不会调用此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