PyCharm正常运行的Python代码在Google Drive的ipynb文件运行时提示无此文件或目录
问题原因与解决方案
核心故障原因
该问题既不是通用Jupyter Notebook的问题,也不是单纯的Google Drive版本更新问题,本质是Google Colab(你在Drive中打开.ipynb默认调用的运行环境)的挂载机制、权限策略和本地PyCharm运行环境存在差异,和你用到的挂载代码直接相关,具体原因如下:
- 路径规则不匹配:本地PyCharm使用的是你本地磁盘的绝对/相对路径,而Drive挂载到Colab后所有文件的根路径为
/content/drive/MyDrive/,直接沿用本地路径会触发找不到文件的报错。 - 权限策略收紧:你看到的权限弹窗是Google Drive近年推出的第三方应用访问权限管控机制,现在挂载Drive时需要手动勾选全部读写权限,如果只授予基础访问权限,写入操作会被拦截,系统也会返回「文件/目录不存在」的错误提示。
- 重复挂载的冲突:你写了两次挂载代码,第二次的
force_remount=True会强制重置路径映射,如果写入操作在强制重挂载后立刻执行,会因路径未完成映射触发报错。
修复步骤
- 简化挂载代码,删除重复挂载行,只保留单次挂载逻辑:
from google.colab import drive drive.mount('/content/drive')
- 重新触发授权流程,在弹出的权限窗口中勾选所有读写权限,完成授权后执行
!ls /content/drive/MyDrive验证挂载状态,能正常列出你的Drive根目录文件即为挂载成功。 - 统一修正写入路径,所有文件操作路径都需要添加
/content/drive/MyDrive/前缀,例如你要写入Drive根目录下的data.bin文件,完整路径应为/content/drive/MyDrive/data.bin,不要使用本地的相对路径。 - 如果写入路径包含多级子目录,需要先确认目录存在,不存在则提前创建,示例代码如下:
import os # 替换为你实际要写入的目录路径 target_dir = "/content/drive/MyDrive/project/bin_files" os.makedirs(target_dir, exist_ok=True) full_save_path = os.path.join(target_dir, "your_binary_file.bin")
内容的提问来源于stack exchange,提问作者A.P Carvalho
相关产品推荐
相关产品推荐

