我想做的是在 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: module 'myfunc' has no attribute 'somefunc'”
我也用过
dir(myfunc)
在test.ipynb中,显示
['__builtins__',
'__cached__',
'__doc__',
'__file__',
'__loader__',
'__name__',
'__package__',
'__spec__']
我的函数“somefunc”不在属性中!!!
此问题仅出现在 Colab 上。我在我的电脑和在线 Jupyter 笔记本上尝试过。它们都工作正常。
PS:无论我是否将空的__init__.py
文件放在同一个文件夹中,问题总是存在。
最佳答案
您可能需要调整您的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
。
关于python - Google Colab 自定义模块没有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55193547/