私はで働いています一つに、別のファイルに定義された関数をインポートしようよ「moduleXには、属性Yを持っていない」は:はImportError
私はインポートしようとしている機能。そしてParallelEqns.pyというファイルに次のようになります。
import sys
import numpy as np
import scipy as sp
import sympy as sym
import matplotlib.pyplot as plt
import os
def ParDeriv(x,p):
derivative = []
for k in range(nS):
test = x[(k-1)%nS]*(x[(k+1)%nS] - x[(k-2)%nS]) - x[(k)%nS] + p
if k == 0:
derivative = test
else:
derivative = np.vstack([derivative, test])
return derivative
私がどのように見えるで働いているファイル:私は「『ParDeriv』名前をインポートすることはできません」の誤差を与える
import sys
import numpy as np
import scipy as sp
import sympy as sym
import matplotlib.pyplot as plt
import os
from ParallelEqns import ParDeriv
私は、ファイルを変更した場合:
import sys
import numpy as np
import scipy as sp
import sympy as sym
import matplotlib.pyplot as plt
import os
import ParallelEqns
ParDeriv = ParallelEqns.ParDeriv
私は
「モジュール 『ParallelEqnsが』いいえ属性 『ParDeriv』を持っていない」私は両方のファイルがであることを確認しましたというエラーを取得します同じディレクトリ。私はここで間違っているのか分かりません
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%% 編集:私は自分の質問に答え、すべてを閉じて、Pythonを再起動しました。正しくインポートするためにParallelEqns.pyファイルを作成した後にPythonを再起動する必要があるようです。
これは、元のインポートエラーのようなものです。あなたは 'ParallelEqns'をインポートしようとしているファイルを何と呼びましたか? 'numpy.py'のように、使用しようとしている他のモジュールの1つと同じものを呼び出しましたか?エラーの完全なスタックトレースを表示します。 – user2357112
ParallelEqnsをインポートしようとしているファイルは "MaskedVegas.py"と呼ばれています 私はそれを理解したようです。ただPythonを再起動する必要があります – sasha
インポートされたすべてのライブラリがインストールされている場合は、作業ディレクトリ内に '__init __。py'を追加する必要があると思います。 – Ralph