首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google笔记本无法导入位于同一个google驱动器和文件夹中的另一个笔记本中定义的最新功能

google笔记本无法导入位于同一个google驱动器和文件夹中的另一个笔记本中定义的最新功能
EN

Stack Overflow用户
提问于 2021-08-15 01:16:56
回答 1查看 678关注 0票数 2

我正在使用google笔记本编写一些编码工作。在book1中,我需要调用一些在book2中定义的函数。

Book1和book2都位于同一个谷歌驱动器和文件夹中。

book1:

代码语言:javascript
复制
 from google.colab import drive
 drive.mount('/content/drive', force_remount=True)
 from kora import drive as kora_drive
 kora_drive.link_nbs()
 
 import book2 as b2
 b2.function1()

book2:

代码语言:javascript
复制
 def function1():
     print('function1 called')

当我从书中链接book2时,可以成功地调用function1()。但是,如果我在book2中更改了一些代码,例如,在book2中添加了一个新函数

代码语言:javascript
复制
 def function2():
     print('function2 called')

在book2中进行更改后,我单击了“保存”,并刷新了驱动器和文件夹以及book2和book1。但是,当我试图从function2从book1调用时,我得到了错误:

代码语言:javascript
复制
 AttributeError: module 'book2' has no attribute 'function2'

我尝试重新装入驱动器并重新导入book2,还尝试了以下两个帖子,但它们都没有工作。

代码语言:javascript
复制
  https://stackoverflow.com/questions/53358250/google-colaboratory-how-to-refresh-google-drive

  https://stackoverflow.com/questions/59020008/how-to-import-functions-of-a-jupyter-notebook-into-another-jupyter-notebook-in-g

有人能指出我错过了什么吗?

谢谢

UPDTAE

在book1,我试过

代码语言:javascript
复制
!pip install import-ipynb
import import_ipynb

import sys
sys.path.insert(1, r'/content/drive/MyDrive/Colab Notebooks/book2.ipynb')

我也试过

代码语言:javascript
复制
 sys.path.insert(1, r'/content/drive/MyDrive/Colab Notebooks/')

但是,"book2“的最新更新仍然无法从book1.ipynb中找到。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-15 02:35:09

为了确保,您的函数位于py文件中,而不是ipydb文件,对吗?

如果它们位于py文件中,则可以执行以下两种方法之一。

您需要将该目录更改为函数位于%cd "mnt/My Drive/Pyfunctions"的位置。确保您知道要导入的python文件位于何处。

您也可以使用sys库实现这一点,

代码语言:javascript
复制
import sys

sys.path.insert(1, r'/mnt/My Drive/pyfunctions')

似乎您已经成功地在第一次加载了函数,然后对其进行了更改。我相信这不是谷歌驱动的工作方式。加载驱动器后,所有文件都是该时间点的文件快照。进行更改不会影响已经加载的文件。

这是在我添加函数并尝试重新加载模块之后的样子。

创建更改寄存器的唯一方法是单击Runtime / Restart Runtime或CTRL +M。(完全停止)并重新加载模块。

我已经在我的colab运行时成功地做到了这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68788108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档