包的导入问题,在pycharm下面都不会报错,在jupyter notebook下面报错,是因为什么啊?

来源:1-1 什么是机器学习

weixin_慕村8280326

2021-08-23

图片描述

写回答

1回答

liuyubobobo

2021-08-24

没有一个包叫 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 就在包的外面)


包内和包外的路径是不一样的。我们写一个包的目的,是要能够让程序在包外调用。


继续加油!:)



0
4
weixin_慕村8280326
回复
liuyubobobo
好的,谢谢老师!
2021-08-25
共4条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5839 学习 · 2437 问题

查看课程