【问题标题】:Google Colab does not apply the changes I make to the code in my local directoryGoogle Colab 不会应用我对本地目录中的代码所做的更改
【发布时间】:2021-07-12 13:39:21
【问题描述】:

我正在为一个项目使用来自 git 的克隆存储库,并且我不断更改克隆文件。我最近遇到了一个问题:无论我从克隆的 github 项目中对本地文件进行什么更改,这些更改都不适用于 colab 笔记本(例如,如果我在这里和那里添加打印,则什么都不会打印,但是函数被调用)。

在尝试将我的所有文件从我的 colab 推送到 git 后,我​​开始面临这个问题,因为我知道如果我只保存笔记本,它们就不会被保存,我按照这里的命令:

https://navan0.medium.com/how-to-push-files-into-github-from-google-colab-379fd0077aa8

我不确定,但我可能已经开始了一些多线程,但我不擅长处理它。无论我更改什么,更改似乎都不会发生,我必须将更改推送到 git,然后再次克隆它,然后它们就会出现。另外,我必须终止运行时,因为我无法摆脱带有!rm -rf directory_name 的目录,它仍然会出现在文件中。如果我重新运行相同的命令,它会说目录不存在。

我很确定它是多线程或一些分叉进程。我想终止它。

链接到我的笔记本: https://colab.research.google.com/drive/1WMaDcEwOdPEsZL65nU_T4Ps9tIkyPY5v?usp=sharing

【问题讨论】:

    标签: git google-colaboratory


    【解决方案1】:

    这里没有发生任何特定于 colab 的事情 - 任何长期存在的 Python 会话都会以相同的方式运行。

    您遇到的问题是python 导入是幂等的:一旦您import foo,任何进一步尝试import foo 都是无效的。 (Python 将导入的结果缓存在 sys.modules 中。)所以如果你导入一个模块,编辑它,然后再次导入,你将看不到你的编辑。

    如果您在 python REPL 中并尝试编辑文件并重新导入它,您会看到相同的结果。

    你有两种简单的方法:

    • 重启python进程;在 Colab 中,这是 ctrl-m 。或Runtime -> Restart runtime
    • 您可以使用importlib.reload 重新导入更新后的代码。

    reload 很棒,但我会警告你,它有很多锋利的边缘,而且很容易欺骗自己。如果您的设置相当快(例如,您不必在内存中重新创建一堆大对象),那么重新启动是保持理智的好方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-23
      • 2012-08-05
      • 2020-06-29
      • 2023-04-09
      • 1970-01-01
      • 2015-09-14
      • 2016-02-29
      • 1970-01-01
      相关资源
      最近更新 更多