Ann*_*Ann 4 git google-colaboratory
我正在为一个项目使用 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
这里没有发生任何特定于 Colab 的事情——任何长期存在的 Python 会话都会以相同的方式运行。
您遇到的问题是 python 导入是幂等的:一旦您导入import foo,任何进一步的尝试import foo都是无操作的。(Python 将导入的结果缓存在 中sys.modules。)因此,如果您导入一个模块,对其进行编辑,然后再次导入,您将看不到您的编辑。
如果您在 python REPL 中并尝试编辑文件并重新导入它,您会看到相同的结果。
你有两个简单的出路:
Runtime-> Restart runtime。importlib.reload重新导入更新的代码。reload很棒,但我要警告你,它有很多锋利的边缘,很容易欺骗你自己。如果您的设置相当快(例如,您不必在内存中重新创建一堆大对象),则重新启动是保持理智的好方法。
| 归档时间: |
|
| 查看次数: |
6615 次 |
| 最近记录: |