所以不知不觉,我在体系自带的python情况下,也安装了不少第三方库,这大概是欠好的行为(毕竟修改了体系自带的python情况),但是我并没有碰到什么问题,所以也还无感。
直到迩来更新了macos15,在一次 pip install --upgrade pip(实际上我运行任何pip操作,都会有此提示)操作中观察到了意想不到的提示(Defaulting to user installation because normal site-packages is not writeable),这让我感到一丝不安。
并且,由于 .zprofile已经做了正确配置,所以当终端打开时,默认的python也会是新安装的python,使用 which python3 (差别于 where python3,which python3是检察当前终端被调用的python3路径,只有唯一一个)检察,显示的应该是新安装的python路径:
再回到这个问题,为什么会产生Defaulting to user installation……的报错呢?一种可能的表明是,我们使用的python(也就是新安装的/Library/Frameworks/Python.framework/Versions/3.9/bin/python3 大概 /usr/local/bin/python3)在根目录下而非用户目录下,因此在安装package时,会优先安装到根目录下的site-packages,而以普通用户权限这个路径是不可写的,所以就会提示干系信息;但实际上库也是安装乐成的,只是安装到了用户路径下。而这其实这也恰好是我们想要的——我们希望用户的行为改变的只是用户目录下的文件,而不是体系目录下的文件,从而不影响体系的正常运行。
总结来说,这里的报错并不是什么欠好的事变,相反,它指示出体系正在保护自身运行所需要的情况,而将所有更改限定在用户路径下。最后的效果就是,即使有多个用户使用这台盘算机,并使用同一个根目录下的python,所调用的依然是自己用户目录下的site-packages,彼此互不干扰,也不影响体系运行的情况。
综上,这其实是一个不用解决的问题。
但网上依然提出一些解决方案,这里小小评价下: