手上的M1 pro用了也快一年了,平时就是用来办公、学习、P图的,偶尔做做开发,目前也是一个重度Mac使用者了。这里就把我遇到的一些问题总结一下,如果有人有遇到过类似的问题,希望能给你们一些启发。
我最开始用的Mac是19年的Air,x86架构的,那台装了brew
,后面收到M1的时候,迫不及待得进行了数据迁移,然后就傻眼了,好多软件都需要重新下载Apple版的,或者要装Rosetta
,最让我难受的是brew
没法直接用,找不到原本安装位置,卸载不了,从官方拿来的一键安装也搞不了,后来记得在一个老哥的知乎里找到了好的解决方案,也是一条命令行解决,参考这里。
最近也在学习Django,我倾向于使用Docker版本的MySQL,但是在配置完Django的settings.py
,并安装好mysqlclient
,兴冲冲的运行runserver
后,报了大概这样的错误
symbol not found in flat namespace '_mysql_affected_rows'
NameError: name '_mysql' is not defined
一开始,我拿着报错去问ChatGPT,GPT告诉我是版本不匹配的问题,让我控制MySQL的版本和mysqlclient
版本一致,我也搞好了,都装了latest版,还是一样的错误,GPT也还是一样的答复。
然后我在PyMySQL
的issue中,找到了解决方案,主要问题出在MySQL以及mysqlclient
的ARM版本仍旧存在问题,需要安装x86版本的。
brew
arch -x86_64 zsh
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew
安装位置默认在/opt/homebrew/bin/brew
brew
的位置(echo; echo 'eval "$(/usr/local/bin/brew shellenv)"') >> /Users/youngjack/.zprofile
eval "$(/usr/local/bin/brew shellenv)"
which brew
后就会发现已经使用的是新安装的位于/usr/local/bin/brew
的x86 brew
了brew
的位置换回ARM版本的位置就行。python
环境下重新安装mysqlclient
以及使用brew
重新安装MySQLbrew install mysql
pip uninstall mysqlclient -y
pip install mysqlclient --no-cache-dir
至于为什么出现这样的提示,大概率是破解软件(穷啊,软件买不起)。
可以使用如下命令
sudo xattr -r -d com.apple.quarantine <app>
sudo codesign --sign - --force --deep <app>
之后,如果在设置的安全组里有让允许软件的情况,点一下允许就行了。
由于工作的关系,需要使用Pulse Secure的VPN连接,这里得给泼一盆冷水,目前并没有哪里能一直提供Pulse Secure客户端的免费下载,一般都是公司内部提供,可是公司内部提供的大部分是Windows版本,目前能搜到的可以使用的下载链接,且用且珍惜,不知道什么时候这个链接也会失效。