采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
没有一个包叫 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 就在包的外面)
包内和包外的路径是不一样的。我们写一个包的目的,是要能够让程序在包外调用。
继续加油!:)
老师,我之前学习python基础的时候看调用模块是 from 模块 import 函数名,这里为什么不行了啊
老师我试了一下,只有在这个py文件和jupyter notebook文件在同一个文件的时候才可以这样用,这种会不会是路径的影响导致了这种差异啊?
1)因为 metrics 不是模块名;2)我给你的回答告诉你的就是你要调整文件的路径:a) py 文件里 metrics 前要加点(.);b)请在包外测试包,不要在包内测试包
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.6k 19
3.5k 17
3.0k 15
1.7k 15
1.5k 14