包的导入问题,在pycharm下面都不会报错,在jupyter notebook下面报错,是因为什么啊?
来源:1-1 什么是机器学习
weixin_慕村8280326
2021-08-23
1回答
-
没有一个包叫 metrics。按照课程中的结构,有一个包叫 playML(目测按照你的写法,就是有一个包叫 mymodule)。你要加载 playML 中的 metric,写法应该是:
from playML import metrics
或者直接将相应的函数引进来:
from playML.metrics import accuracy_score
参考这里:https://git.imooc.com/coding-169/coding-169/src/master/04-kNN/04-Accuracy-Score/04-Accuracy-Score.ipynb 的 In[14]
=========
相应的,在包中引用包内的其他文件,需要加点(.),参考这里的第 4 行:https://git.imooc.com/coding-169/coding-169/src/master/04-kNN/04-Accuracy-Score/playML/kNN.py
表示引用的是这个包里的 metrics 文件。
可以参考这里:https://coding.imooc.com/learn/questiondetail/y0K5g68Bz1nYe2QN.html
如果你不写 .metrics,在 pycharm 下运行你的程序是正确的,说明你的测试函数(__main__) 函数写在了包的内部。请把测试函数写在包的外面,在包的外面测试包。(Jupyter Notebook 就在包的外面)
包内和包外的路径是不一样的。我们写一个包的目的,是要能够让程序在包外调用。
继续加油!:)
042021-08-25
相似问题