作为数据科学家或相关技术专业人士,可能已经购买了一台搭载M1芯片的MacBook。本文将尽力保持更新,最后更新日期为2023年4月1日。如果在尝试打开Jupyter Notebook时遇到内核崩溃,或者还没有成功运行Jupyter Notebook,那么这篇文章正是需要的。将从下载步骤开始,一直到拥有一个完全运行的Jupyter Notebook。(假设不确定电脑上是否已经安装了Jupyter。如果确定已经下载了Jupyter,可以跳到下一步。)
步骤1:打开终端。可以通过按住Command键并按空格键来调出Spotlight搜索,然后输入“Terminal”并按回车键。
步骤2:在终端中输入jupyter notebook
并按回车键。如果终端显示类似于下面的图片,并且浏览器中打开了Jupyter界面,那么Jupyter已经安装好了。(即使出现内核错误也没关系,稍后会解决!)跳到步骤6。
如果终端显示“command not found: jupyter”,那么需要先检查Python是否已经安装。转到步骤3。
步骤3:在终端中输入python3
并按回车键。如果终端显示类似于“Python 3.X.Y”的信息,底部有“>>>”符号,那么很好!这意味着Python 3已经安装。输入quit()
退出。跳到步骤5。
如果出现“command not found: python3”错误,这意味着需要安装Python。新的Mac操作系统应该已经预装了Python,所以如果遇到错误,请确保没有拼写错误。转到步骤4。
步骤4:可以通过访问XCode命令行工具来安装Python。需要登录Apple ID并按照指示操作。请注意,常规的Anaconda下载在此不适用,因为M1芯片不是64位的。完成后,返回步骤3。
步骤5:如果已经安装了Python但遇到安装Jupyter的问题,那么在终端中输入pip3 install jupyter
。如果这不奏效,那么请访问相关链接并按照指示操作。
此时,Python和Jupyter应该已经安装好了。希望阻止内核反复崩溃。
步骤6:在终端中输入jupyter notebook
并按回车键。然后点击“New”(在右侧)并打开一个Python 3笔记本。
如果能够在笔记本中运行命令——太好了!教程结束了。跳到底部,了解有关TensorFlow的注意事项(如果关心TensorFlow)。或者,可以查看其他文章,主要是关于计算机视觉的。
步骤7:感谢这个链接和用户burakozdamar公开George Hotz的YouTube视频,学到了一种解决方法,可以阻止Jupyter笔记本内核停止。
需要使用终端和/或Finder来找到系统路径,该路径以ipykernel/eventloops.py
结尾。(在系统上,它是lib/python3.8/site-packages/ipykernel/eventloops.py
,但可能会略有不同。重要的是要找到eventloops.py
文件。)将对此文件进行一次更改。
打开终端。输入nano filepath/ipykernel/eventloops.py
,其中filepath
应该是带到特定eventloops.py
在ipykernel
文件夹中的特定路径。按回车键。应该看到以下内容:
文本编辑器视图的eventloops.py
。使用箭头键导航到def _use_appnope()
,这是截图底部的第一个函数。要编辑的是return
行。
在该return
行上,使用箭头键导航到该行的最右侧。在V('10.9')
之后,将添加:and platform.mac_ver()[2] != 'arm64'
。完成后,整行应该如下所示:
一旦完成了编辑并确保没有拼写错误,那么按住Control并按x退出。它会询问是否保存。按y。然后按回车键。
承认:这个过程非常“照说的做,不要问任何问题”。如果想了解得更多,George Hotz在他的视频中非常出色地描述了调试过程;可以跳转到他进行更改的地方(大约47分钟30秒)在这里。
请注意,George还编辑了docstring(三引号之间的文本),以更好地反映函数的作用——检查Apple Silicon。
步骤8:如果按照上述步骤操作,应该已经可以了。通常会退出终端(按住Command键并按Q),因为认为有时更新不会立即生效,除非重启终端。确保它通过返回步骤6并在Jupyter笔记本中编写命令来工作。
现在应该已经设置好了。
感谢跟随。希望这对有帮助。如果发现任何错误或需要更新,请告诉(使用屏幕左侧的电子邮件按钮)——想尽可能地帮助人们,而新技术往往变化得非常快。
如果下一步是使用OpenCV,请按照指南安全地安装OpenCV与M1。
想在M1上使用TensorFlow?如果目标是安装TensorFlow,它在M1上还没有官方支持。然而,可以按照这里的指示创建一个虚拟环境。请注意,虽然某些TensorFlow功能有变通方法,但其他功能如object_detection尚未支持。如果了解到变通方法,请通过电子邮件告诉。