在使用M系列芯片的Mac上搭建合理的python开发环境
0. 前情提要
刚入手Macbook时候就了解到在Macbook上配置python会稍微有点麻烦,主要是因为系统自带了python,而且不少系统功能需要python支持;因此乱改自带python的环境,可能会造成意想不到的后果。所以网上的大神们也都建议不要使用mac自带的python。
不过现在回想起来,我当时并没有太在意这个事情,因为在win上开发python的经验告诉我,conda(虚拟环境)才是最优解,毕竟谁也不想把python装的“到处都是",把环境变量弄得”乱七八糟"。所以对于会用anaconda的我来说,系统自带的python本来也不会被使用到,我也并没有必要安装自带的python以外的其他python。
不过事实证明,我在日常使用系统自带的python环境的频率非常高,一方面可以快捷的在命令行调用python完成一些科学计算,另一方面有一些很好用的小工具(例如m系列芯片专享的性能检测工具asitop,还有数据标注工具label-studio)也是基于python构建的,可以通过pip安装。
所以不知不觉,我在系统自带的python环境下,也安装了不少第三方库,这也许是不好的行为(毕竟修改了系统自带的python环境),但是我并没有遇到什么问题,所以也还无感。
直到最近更新了macos15,在一次 pip install --upgrade pip
(实际上我运行任何pip操作,都会有此提示)操作中观察到了意想不到的提示(Defaulting to user installation because normal site-packages is not writeable),这让我感到一丝不安。
虽然我也搞不清楚这样的报错信息,是一直都有,还是更新完新系统才有(后者的可能性似乎更大些,因为关于这条报错,CSDN上有人评价过这种情况确实多发于更新新系统之后);虽然这条信息看起来人畜无害,但如果不能解决或者弄清楚原因,始终让人感到不安。
因此最近忙里偷闲找时间梳理了mac上安装python的多种情况,同时也对这个报错信息的来源有了眉目,做个笔记记录下。笔记很多的观点只是个人猜想,并没有做严谨考证,欢迎大神指出错误。
1. 先说结论
如果你是M系列芯片的Mac电脑(我认为这点很重要,因为在搜索有关mac如何配置python的教程中,无论在CSDN还是Stack Overflow等平台,即使有一些很新的帖子,讨论的也还是基于Intel芯片的Macbook,这些老mac的系统版本甚至还是上古的OS X;而实际上目前很大一部分Mac用户使用的已经是基于M系列芯片的电脑了,但这两者在配置python方面有一定的区别),也就是说你的电脑自带的已经是python3(而不是老mac自带的python2),那么你电脑里的python也许应该这样配置,也就是有以下三类适用于不同场景的python:
- 系统自带的python(用于保障系统功能正常运行的python(版本似乎是3.9.6),平常不