前言
- 在需要导入的文件夹创建
__init__.py
这个文件夹下记得每次创建,就是导入的模块的目录下,每个py文件被称之为模块,每个具有__init__.py
文件的目录被称为包。只要模块或者包所在的目录在sys.path
中,就可以使用import 模块或import 包来使用。
第一种情况(导入模块和py文件在同一个目录)
如果你要使用的模块(py文件)和当前模块在同一目录,只要import相应的文件名就好,比
如在a.py中使用b.py:
import b
第二种情况(导入的模块在py文件所在目录的父目录下)
如果导入的模块是在主程序所在目录的父目录下,则要通过修改path来解决,有两种方法:
- 通过”import sys,sys.path.append(‘父目录的路径’)“来改变,这种方法属于一次性的,只对当前的python解释器进程有效,关掉python重启后就失效了。
- 直接修改环境变量:在windows中是
“ set 变量=‘路径’ ”
例如:set PYTHONPATH=‘C:\test\...’
查看是否设置成功用echo %PYTHONPATH%
,而且进到python解释器中查看sys.path
,会发现已经有了新增加的路径了。这 种方式是永久的,一次设置以后一直都有效。在linux中是"export 变量=‘路径’ “
,查看是" echo $变量 "
,通过修改path是通用的方法,因为python解释器就是通过sys.path
去一个地方一个地方的寻找模块的。
情况一:
导包import时发生错误,请参考这两位
我的问题是第一篇文章解决的,主要出现的错误提示是
[this inspection detects names that should resolve but don't.due to dynamic dispatch and duck typing,this is possible in a limited but useful number of cases .top-level and class-level items are supported better than instance items](https://blog.csdn.net/zhangyu4863/article/details/80212068)
https://blog.csdn.net/zhangyu4863/article/details/80212068
这篇文章还没有看,如果以后碰到类似错误就看一下
https://www.cnblogs.com/biyuting/p/6262599.html
情况二:
调用函数是发生这种错误,那么可能是有多个库函数均含有所调用的函数,IDE不知道用哪个。
def adaboostTrainDS(dataArr,classLabels,numTt=40):
weakClassArr = []
m = shape(dataArr)[0]
from keras.backend import ones
D = numpy.mat(ones((m, 1) / m))
from keras.backend import zeros
aggClassEst= numpy.mat(zeros(m, 1))
for i in range(numTt):
bestStump,error,classEst=buildStump(dataArr,classLabels,D)
print ("D:",D.T)
from keras.backend import log
alpha=float(0.5*log((1.0-error)/max(error,1e-16)))
bestStump['alpha']=alpha
weakClassArr.append(bestStump)
print("classEst:",classEst.T)
expon=multiply(-1 * alpha * numpy.mat(classLabels).T, classEst)
D=multiply(D, numpy.exp(expon))
D=D/D.sum()
aggClassEst+=alpha*classEst
print("aggClassEst:",aggClassEst.T)
aggErrors=multiply(numpy.sign(aggClassEst) !=
numpy.mat(classLabels).T, ones(m, 1))
errortRate=aggErrors.sum()/m
print("total error:",errortRate,"\n")
if errortRate==0.0:break
return weakClassArr
mat、zeros等函数会报这种错误,那么可能是一个函数对应的库函数太多,找不到该对应哪个所致。
点击函数左边小灯泡,前两个选一个,进而选择自己需要使用的包