MacOS Catalina下多Python版本pip疑问:Python2.7为何存在numpy
为什么macOS的Python2.7里会有numpy?
这其实是macOS系统自带的特性,和你用pip给Python3.8安装包的操作完全没关系~
核心原因:macOS预装了Python2.7及部分常用库
Apple在系统自带的Python2.7环境中,预先安装了一批常用的Python库,包括numpy、scipy这类科学计算库,目的是给系统自身的工具和脚本提供支持。这些预装库的存放路径就是你看到的:
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/__init__.pyc
它们属于系统级别的内置内容,不是你通过pip安装到Python3.8的包“跑”过去的。
快速验证差异的方法
你可以分别在两个Python环境里查看numpy的版本和路径,就能清晰区分:
- 打开终端,启动Python3.8:
python3
然后执行代码:
import numpy print(numpy.__version__) print(numpy.__file__)
输出的路径应该指向/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/,版本是你通过pip安装的最新版(比如1.20+)。
- 再启动系统自带的Python2.7:
python
执行同样的代码,你会发现版本比较老旧(比如1.8.0左右),路径就是系统的Extras目录,这完全是Apple预装的版本。
小贴士:避免环境混淆
- 如果你需要给特定Python版本安装包,推荐用
pythonX -m pip install 包名的方式,比如给Python3.8安装就是python3 -m pip install numpy,这样能100%确保安装到目标环境,不会因为pip的别名问题搞错。 - 不建议修改系统自带的Python2.7环境,也不要给它安装新包,因为这可能影响系统工具的正常运行,而且Python2.7已经停止维护了,优先用Python3.8就好。
内容的提问来源于stack exchange,提问作者Iloveece
相关产品推荐
相关产品推荐

