Google Colab自定义模块没有属性

时间:2019-03-16 04:51:36

标签: python python-3.x attributeerror google-colaboratory

我想做的是在Google Colab的自定义模块中定义一个函数。 我创建了一个* .py文件来定义函数。是

/content/gdrive/My Drive/Colab/myfunc.py

然后,我在同一文件夹中创建了一个* .ipynb文件。是

/content/gdrive/My Drive/Colab/test.ipynb

在myfunc.py中,代码为

def somefunc(a)
  return a*2

在test.ipynb中,代码为

cd /content/gdrive/My\ Drive/Colab
import myfunc
myfunc.somefunc(2)

然后发生错误“ AttributeError:模块'myfunc'没有属性'somefunc'”

我也用过

   dir(myfunc)

在test.ipynb中,显示

['__builtins__',
 '__cached__',
 '__doc__',
 '__file__',
 '__loader__',
 '__name__',
 '__package__',
 '__spec__']

我的函数“ somefunc”不在属性中!

仅在Colab上会出现此问题。我在计算机和在线Jupyter笔记本上进行了尝试。它们都正常工作。

PS:无论我是否将空的__init__.py文件放在同一文件夹中,问题始终存在。

2 个答案:

答案 0 :(得分:0)

您可能需要调整sys.path

这是一个完整的示例,显示了如何创建模块并将其导入Colab: https://colab.research.google.com/drive/1PtYW0hZit-B9y4PL978kV2ppJJPhjQua

我相信,此示例中要添加的关键行是:

# Add the local_modules directory to the set of paths
# Python uses to look for imports.
import sys
sys.path.append('local_modules')

您需要将路径从'local_modules'调整为/content/gdrive/My\ Drive/Colab

答案 1 :(得分:0)

万一其他人偶然发现,请在/content级别上复制您需要的所有内容:

!cp -r ../drive/MyDrive/Colab .

并从那里使用它们。