2017-07-07 10 views
0

最近私は新しいコンピュータ(私の最初のMac、以前はPCがあった)を手に入れました。私は私の研究に使用するデータ解析機能が充実したモジュールを持っており、今までモジュールを編集する理由はありませんでした。しかし突然、Jupiterのノートブックでモジュールをインポートすると、新しい機能は認識されません。モジュールの新機能がiPythonのノートブックで見られない

import altdata as alt 
alt.retrieve_data_from_umiami_latlonam('GISS','AQUA', 'ts') 

そして、これは、次のエラー発生します私は私の人生のために問題が何であるかを把握することはできません

----------------------------------------------------------------------- 
---- 
AttributeError       Traceback (most recent call 
last) 
<ipython-input-3-9ccbc97fd6b8> in <module>() 
1 
----> 2 alt.retrieve_data_from_umiami_latlonam('GISS','AQUA', 'ts') 

AttributeError: 'module' object has no attribute 'retrieve_data_from_umiami_latlonam' 

を。コマンドラインを試してみると完璧に動作しますが、何らかの理由で新しい機能がノートブックで動作しません。何か案は?

UPDATE

私が(/ mymodules)モジュールが配置されているディレクトリにノートブックを開いたとき、それは働くようです。私はmymodulesを含むディレクトリでそれを開いて、私はエラーを取得する

import sys 
sys.path.append(r'/mymodules') 
import altdata as alt 

使用

。何か案は?

+1

おそらく、PYTHON_PATHに複数のパスのモジュールがリストされています。 'sys.path.append(r '/ mymodules')'の代わりに、パスの先頭に追加すると問題を解決するはずです。つまり、 'sys.path.insert(0、r '/ mymodules')' – Sebastian

+0

です。パス名を変更して修正しました。 'sys.path.append("/mymodules ")'が働いていました。助けてくれてありがとう – BenL

+0

これはうまくいきました。一般に、Pythonはパッケージのsys.pathリストを順番にスキャンし、以前のパスでパッケージを見つけたので、 'sys.path.insert(0、 '/ some_module')'を 'append'経由でお勧めしますここにリストされていると、あなたが追加したパスを使用しても気にならないでしょう – Sebastian

答えて

0

ノートブックを起動し、そのノートブックで初めてモジュールをインポートした後で、モジュールを変更しましたか?その場合は、再読み込みを試みることができます(例: importlib.reload(module)。これで問題が解決しない場合は、ノートブックPCを再起動してモジュールを再インポートしてください。

+0

私はカーネルを再起動しましたが、何もしません。私は新しいノートブックで試しました。また何も – BenL

+0

私は実際にすべてのノートブックを閉じてJupyterを再起動し、それはうまくいったようです。なぜ誰かが*なぜ*これが起こったの良い説明がある場合、私はそれを感謝します。これは私のPCでは決して起こらなかったし、それは非常に面倒です。私はモジュールを定期的に編集します – BenL

+1

セッションのディレクトリ/パスに 'altdata.py'というモジュールがない場合は、PYTHON_PATHのいくつかのインストールディレクトリからモジュールをインポートします。多分あなたは変更を加えてインストールを更新するのを忘れたでしょうか? altdataをインポートした後、 'altdata .__ file__'を使ってインポートする場所を調べることができます – Sebastian

関連する問題