私はPythonがまったく初めてです。現在、私は Enthought キャノピー (python 2.7.3) を使用しています。この質問は以前に何百万回も聞かれたことを知っています。皆さんがこの質問にうんざりしていると想像できますが、一日中悩まされています。
import Basismodel
def doAll(c):
#from Basismodel import calcKappa
Basismodel.setC(c)
Basismodel.setMu()
Basismodel.setLambda()
Basismodel.calcKappa()
Basismodel.calcSumofprob()
Basismodel.calcPi()
doAll(100)
ここで言及されているすべての関数が定義されている別のファイル Basismodel.py を使用します。最初の 3 つでエラーは発生しませんが、最後の 3 で発生します。
追加情報として、Basismodel.py のコードも提供します。
global c
global lamb
global pi
global kappa
global mu
global sumofkappa
global f
f=0.6 #the percentage that takes the car
c=100 #max
sumofkappa=0 #sum of all kappa
sumofpi=0 #sum of all probabilities (should be equal to 1)
pi=[]
kappa=[1.0]
mu=[0.4]
lamb=[0.1] #Lambda is de arrival rate
def setC(y):
c=y
#print c
def setMu():
global mu
for i in range (c):
mu.append((i+2)*mu[0])
#print mu[i]
def setLambda():
for i in range (c):
lamb.append(lamb[1])
#print lamb[i]
def calcKappa():
for i in range (c):
if (i==0):
kappa[0]=1.0
else:
kappa[i].append(kappa[i-1]*lamb[i-1]/mu[i])
def calcSumofprob():
for i in range (c):
global sumofkappa
sumofkappa += kappa[i]
def calcPi():
for i in range (c):
pi.append(kappa[i]/sumofkappa)
def calcAveragePi():
for i in range(c):
global sumofpi
sumofpi += pi[i]
return sumofpi/c
メインを実行すると、このエラーが発生します。すべての印刷行が #comment スタイルであるため、意味がありません。ただし、属性が見つからない理由にもっと興味があります。また、def doAll の後に "#from .Basismodel import calcKappa" を設定すると、エラーは importerror に変わり、インポートできません。
%run "C:/Users/Thomas/Dropbox/Thesis/Canopy files/Main.py"
100
0.4
0.8
1.2
1.6
2.0
2.4
2.8
3.2
3.6
4.0
4.4
4.8
5.2
5.6
6.0
6.4
6.8
7.2
7.6
8.0
8.4
0.8
1.2
1.6
2.0
2.4
2.8
3.2
3.6
4.0
4.4
4.8
5.2
5.6
6.0
6.4
6.8
7.2
7.6
8.0
8.4
0.8
1.2
1.6
2.0
2.4
2.8
3.2
3.6
4.0
4.4
4.8
5.2
5.6
6.0
6.4
6.8
7.2
7.6
8.0
8.4
0.8
1.2
1.6
2.0
2.4
2.8
3.2
3.6
4.0
4.4
4.8
5.2
5.6
6.0
6.4
6.8
7.2
7.6
8.0
8.4
0.8
1.2
1.6
2.0
2.4
2.8
3.2
3.6
4.0
4.4
4.8
5.2
5.6
6.0
6.4
6.8
7.2
7.6
8.0
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
C:\Users\Thomas\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.1.0.1371.win-x86_64\lib\site-packages\IPython\utils\py3compat.pyc in execfile(fname, glob, loc)
174 else:
175 filename = fname
--> 176 exec compile(scripttext, filename, 'exec') in glob, loc
177 else:
178 def execfile(fname, *where):
C:\Users\Thomas\Dropbox\Thesis\Canopy files\Main.py in <module>()
17 return Basismodel.calcAveragePi()
18
---> 19 doAll(100)
20
21 #while(condition==0):
C:\Users\Thomas\Dropbox\Thesis\Canopy files\Main.py in doAll(c)
12 Basismodel.setMu()
13 Basismodel.setLambda()
---> 14 Basismodel.calcKappa()
15 Basismodel.calcSumofprob()
16 Basismodel.calcPi()
AttributeError: 'module' object has no attribute 'calcKappa'
誰でも助けることができますか?