python - Google Colab 自定义模块没有属性

标签 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: 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/

相关文章:

python - 使用 Boost::Python 进行高阶编程

python - 在python中按天对时间戳字符串进行分组

python - 将字符串中的所有冗余 float 转换为整数

Python:使用 ctypes 访问 DLL 函数——按函数 *name* 访问失败

python - 混洗范围迭代器

python - 为什么当我增加字体大小/更改字体类型时按钮大小会增加?

python - 无法为 'qt5' 启用 GUI 事件循环集成

python - 使用 os.scandir() 引发 AttributeError : __exit__

python - PyQt - QTableWidget 的 setText 方法获取 AttributeError

python - 如何使用冒号分隔符从 csv 创建数据框