Mac本地Jupyter加载Google Drive内.ipynb文件报权限拒绝错误
问题场景
本地Mac设备通过Google Drive桌面端同步协作项目文件夹,本地启动Jupyter Lab/Notebook访问Drive同步目录下自行创建的.ipynb文件时触发以下报错,需保留本地工作流,不迁移到Google Colab运行:
File Load Error for file.ipynb.
Permission denied: Google Drive/My Drive/project/code/file.ipynb
项目选择Google Drive而非GitHub托管的原因是目录下存在需调用code文件夹内脚本做修改的data目录,Drive更适合大体积非代码数据的协作同步。
修复方案
按优先级从高到低操作,每步操作完重启Jupyter测试即可:
- 修复目录基础权限
打开终端执行以下命令,给当前用户授予项目目录的读写权限,不要给整个Google Drive根目录赋权,避免触发同步异常:
如果是协作者共享给你的项目文件夹,先登录Google Drive网页端确认你对该文件夹持有编辑者权限,仅查看/评论权限会导致桌面端同步时将本地文件标记为只读,哪怕本地权限位正常也无法写入修改。chmod -R u+rw ~/Google\ Drive/My\ Drive/project/ - 放开macOS隐私访问限制
macOS 12及以上版本默认拦截未授权程序访问Google Drive挂载目录,打开「系统设置→隐私与安全性→完全磁盘访问权限」,将你启动Jupyter所用的终端(系统自带Terminal/iTerm2等)、当前使用的Python解释器(conda虚拟环境/brew安装的Python对应可执行文件)加入允许列表,添加完成后完全退出终端、Jupyter进程再重启测试。 - 调整Jupyter启动路径
不要在用户根目录或其他非项目路径下直接执行jupyter lab启动,先通过终端切到项目目录下再启动,避免Jupyter跨挂载点访问触发Drive的访问拦截:cd ~/Google\ Drive/My\ Drive/project/ jupyter lab - 排查同步锁冲突
如果协作者正在编辑同一个.ipynb文件,Google Drive会给本地对应文件加临时锁,此时可以先暂停Drive桌面端的同步功能,等文件同步状态显示为「已完成」、没有其他协作者占用时再尝试打开。
以上操作不会破坏原有Google Drive同步链路,不需要迁移文件到其他目录,也不需要上传数据到Colab即可正常在本地运行Jupyter工作流。
内容的提问来源于stack exchange,提问作者Alberto Agudo Dominguez
相关产品推荐
相关产品推荐

