Python “在”期间出错;“保存和检查点”;在Google DFS文件夹中运行jupyter笔记本时

Python “在”期间出错;“保存和检查点”;在Google DFS文件夹中运行jupyter笔记本时,python,google-drive-api,jupyter-notebook,jupyter,Python,Google Drive Api,Jupyter Notebook,Jupyter,长期以来,我一直在谷歌硬盘中使用Jupyter笔记本,它工作得非常好。最近我被迫切换到较新的版本驱动文件流。我使文件夹脱机可用,这意味着我将文件夹保存在本地存储空间中。当我启动一个Jupyter笔记本时,它运行正常,但尝试保存和检查点会给我一个错误检查点失败。似乎它以某种方式正确保存了文件,但返回了一个错误 我在Anaconda提示符下运行jupyter笔记本,启动了jupyter笔记本。当我尝试保存和检查点时,出现以下错误。似乎它在抱怨保存的文件是相同的-shutil.SameFileErro

长期以来,我一直在谷歌硬盘中使用
Jupyter笔记本
,它工作得非常好。最近我被迫切换到较新的版本
驱动文件流
。我使文件夹
脱机可用
,这意味着我将文件夹保存在本地存储空间中。当我启动一个
Jupyter笔记本
时,它运行正常,但尝试
保存和检查点
会给我一个错误
检查点失败
。似乎它以某种方式正确保存了文件,但返回了一个错误

我在
Anaconda提示符下运行
jupyter笔记本
,启动了jupyter笔记本。当我尝试保存和检查点时,出现以下错误。似乎它在抱怨保存的文件是相同的-
shutil.SameFileError
,这真的很奇怪,因为我确实更改了笔记本,增加了一个
保存尝试x
,以帮助我判断它是否保存了。我还尝试删除文件夹
.ipynb_checkpoints
中相应的检查点,并执行
保存和检查点
,但仍然收到相同的错误

我向Jupyter笔记本提交了一张问题单,似乎其他几个人也遇到了同样的问题,但没有收到任何帮助

以下是我的日志:

[I 10:49:44.573 NotebookApp]在/Writing\u MVUE\u 2d.ipynb保存文件
[E 10:49:44.690 NotebookApp]API请求中未处理的错误
回溯(最近一次呼叫最后一次):
文件“C:\ProgramData\Anaconda3\lib\site packages\notebook\base\handlers.py”,第516行,在包装器中
结果=未来产量(方法(self,*args,**kwargs))
文件“C:\ProgramData\Anaconda3\lib\site packages\tornado\gen.py”,第1015行,正在运行
value=future.result()
结果文件“C:\ProgramData\Anaconda3\lib\site packages\tornado\concurrent.py”,第237行
提升exc信息(自身exc信息)
文件“”,第3行,在raise_exc_信息中
文件“C:\ProgramData\Anaconda3\lib\site packages\tornado\gen.py”,第285行,在包装器中
产生=下一个(结果)
文件“C:\ProgramData\Anaconda3\lib\site packages\notebook\services\contents\handlers.py”,第278行,在post中
检查点=生成可能的未来(cm.创建检查点(路径))
文件“C:\ProgramData\Anaconda3\lib\site packages\notebook\services\contents\manager.py”,第468行,位于创建检查点
返回self.checkpoints.create_检查点(self,path)
文件“C:\ProgramData\Anaconda3\lib\site packages\notebook\services\contents\filecheckpoints.py”,第56行,位于create\U checkpoint中
自我复制(src\u路径、dest\u路径)
文件“C:\ProgramData\Anaconda3\lib\site packages\notebook\services\contents\fileio.py”,第241行,一式两份
copy2_-safe(src、dest、log=self.log)
文件“C:\ProgramData\Anaconda3\lib\site packages\notebook\services\contents\fileio.py”,第51行,在copy2\u-safe中
shutil.copyfile(src,dst)
文件“C:\ProgramData\Anaconda3\lib\shutil.py”,第98行,在copyfile中
raise SameFileError(“{!r}和{!r}是同一个文件“.format(src,dst))
shutil.SameFileError:'G:\\My Drive\\Research\\Camera\u Project\\Writing\u MVUE\u 2d.ipynb'和'G:\\My Drive\\Research\\Camera\u Project\\.ipynb\u checkpoints\\Writing\u MVUE\u 2d-checkpoint.ipynb'是同一个文件
[E 10:49:44.698 NotebookApp]{
“缓存控制”:“无缓存”,
“Cookie:“username-localhost-8891=\”2 | 1:0 | 10:1525749572 | 23:username-localhost-8891 | 44:zge5njfkmtgwoti3ndfjmjhmzy1ndiwnjhlodk5od5oda=| 52cc6ad64c261ccd78d2f66a0c14a95edc8468e4ac9c27770ce2bbb8cd55\”;| xu xsu=2 | f34c78bf378bf 1247bf378bf |;username=21966a497bf767bf767bf767bf767bf767bf767bf767;=2;ӟ2.2.2.1.1:10:10:12 12 12.24.24.24.24:10:10:4:4:4:4:管理层FHNMmemememeffzzzmzzzzzmzzzmzmememememememeff4.4:4:4:4:4:4:4:4:4:4:1:4:4:1:ffffffHmemefNMNMNMmememememememememememememeffffzzzzzzzzzfffffffffffnm国防国防军事军事军事军事军事军事国防军2 2(国防国防国防国防军ndndndndndMMMMMMMMfffndndndmdmdmdmdmdmdmdmdndndndndndndndndmmmmmmmWendndndndndndfffffffffffffffffffffA0FBF7EFAE9C993B450311F5046F4C0BA45A66\“username-localhost-8888=”2 | 1:0 | 10:1526395222 | 23:username-localhost-8888 | 44:zdjmzwnjzwuzzdjndvmmjkwmtzhnwzmnti1mjhmte=| 9cd671557f9b67b203088e3852aaf37de56ad7c8ad45f26798bc3e0d47a49c43\”,
“推荐人”:http://localhost:8888/notebooks/Writing_MVUE_2d.ipynb",
“X-Xsrftoken”:“2 | f34c78bf | 7C7913196386A495E7FB6A7C3C7BF7E | 1525206477”,
“来源”:http://localhost:8888",
“内容长度”:“0”,
“连接”:“保持活动状态”,
“接受编码”:“gzip,deflate”,
“接受”:“应用程序/json,文本/javascript,*/*;q=0.01”,
“接受语言”:“en US”,
“用户代理”:“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299”,
“X-request-With”:“XMLHttpRequest”,
“主机”:“本地主机:8888”
}
[E 10:49:44.698 NotebookApp]500 POST/api/contents/Writing\u MVUE\u 2d.ipynb/checkpoints(::1)12.00ms参考=http://localhost:8888/notebooks/Writing_MVUE_2d.ipynb


非常感谢您的帮助!

deniz195的一些出色调试带来了一个很好的答案!这个临时解决方案对我和许多其他github朋友都很有效

这里引用他最初的回答:

我对该问题进行了一点调试,找到了以下解决方案:

第1部分-最小工作示例 问题似乎源于shutil.copyfile,它检查源文件和目标文件是否相同(使用os.path.samefile)

windows和google驱动器文件流的组合似乎产生了无效的结果。下面是一个最小的示例(假设存在G:\My drive\foo.txt,使用python 3.6.2):

-->最后一行抛出相同的错误,尽管它显然不应该

鉴于:

>>> f1 = 'G:\\My Drive\\foo.txt'
>>> f3 = 'C:\\Scratch\\foo2.txt'
>>> import shutil
>>> shutil.copyfile(f1, f3)
>>> shutil.copyfile(f1, f3)
-->不会抛出错误(正确)

第2部分-Wh
>>> f1 = 'G:\\My Drive\\foo.txt'
>>> f3 = 'C:\\Scratch\\foo2.txt'
>>> import shutil
>>> shutil.copyfile(f1, f3)
>>> shutil.copyfile(f1, f3)
# Are two filenames really pointing to the same file?
def samefile(f1, f2):
    """Test whether two pathnames reference the same actual file"""
    s1 = os.stat(f1)
    s2 = os.stat(f2)
    return samestat(s1, s2)

# Are two stat buffers (obtained from stat, fstat or lstat)
# describing the same file?
def samestat(s1, s2):
    """Test whether two stat buffers reference the same file"""
    return (s1.st_ino == s2.st_ino and
            s1.st_dev == s2.st_dev)
>>> import os
>>> os.path.genericpath.__file__
'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Anaconda3_64\\lib\\genericpath.py'
# Are two stat buffers (obtained from stat, fstat or lstat)
# describing the same file?
def samestat(s1, s2):
    """Test whether two stat buffers reference the same file"""
    return (s1.st_ino != 0 and
          s2.st_ino != 0 and
          s1.st_ino == s2.st_ino and
            s1.st_dev == s2.st_dev)