2012-12-14 5 views
21

私は今Pythonで約1ヶ月間だまされていて、何かが気になります。 私はPython(x、y)ツールキットを使います。これにはきちんとしたSpyder IDEが付属しています。 私の質問はSpyderのUMD(User module deleter)に関するものです。Spyder - UMDが削除されました:module

私はthisグラフィックスモジュールをインターネット上に見つけました。これは、私が理解する限り、Pythonスクリプトで簡単なグラフィックスを行うのに役立ちます。

import pylab as p 
import graphics as g 

window = g.GraphWin("tryout", 600, 600) 
window.close() 
print p.sqrt(4) 

出力は次のとおりです:

>>>runfile(r'C:\some\folders\tryout.py', wdir=r'C:\some\folders') 
>>>UMD has deleted: graphics 
>>>2.0 

ライン1は明らかにo.k.ある

それは私がこだわっているが、私はfolowingコードを実行するときのようではありませんライン3もそうですが、私はライン2を取得しません。 また、誘発されたウィンドウは画面内外で点滅します。 2行目は何も悪影響を与えていないようですが、何回もファイルを完全に再実行できますが、どこから来ているのかを知りたいのです。

AFAIK UMDは、スクリプトが実行されるたびにインタープリタにモジュールをリロードするよう強制します。 表示されたメッセージは、それがもう使用されていないため、モジュールへの参照が削除されたことを意味しますか、それとも何か他のものですか?それとも、何かが間違っていることを意味するのでしょうか?後で私のコードを傷つけるでしょうか?

注:最初の質問ですので、私の尋ねるスキルを向上させるのに役立つように、ごめんなさい。

編集:私はテストラインprint p.sqrt(4)を移動してみましたが、どこに置いても問題ありません。モジュールをインポートした後の最初の行ならば、それはまだSQRTを表示する前にメッセージをraisses(4)

答えて

43

短い答え:おそらく

はあなたが言及したメッセージで最高の言葉ではありません削除されました。 にリロードする必要があります。これはUMDが実際にやっていることであり、混乱を避けるためです。問題のトラッカーで問題を記入します。

長い答え:

UMDは、スクリプトだけでなく、それが依存するすべてのローカルモジュールだけでなく、再ロードします。 ローカルというのは、あなたのPythonインストールの外で、書き込み権限を持っているモジュールを意味します。

あなたのスクリプトの隣に、補助機能のライブラリを開発したことがあります。したがって、おそらく、そのライブラリをリロードして、そのライブラリへの変更が実行時に反映されるようにする必要があります。

あなたはそのメッセージを削除したい場合は、あなたがに行くことができますので、私は、これはあなたのケースではありません知っている:

ツール>設定>コンソール>詳細設定>ユーザモジュールDELETER

とオプションに

ショーの再を無効に読み込まれたモジュールリスト

+0

清算ありがとうございました – Kraay89

+0

この "Show reloaded modules list"は、デバッグのためにMayaviを使用すると非常に長いリストが表示されるので便利ですデフォルトでは? – dashesy

+2

私はそれがデバッグのためだとは思わない。それは、次の実行前にどのモジュールが再ロードされたかをユーザに知らせることに関するものです。あなたのケースでは、Mayaviがローカルにインストールされていると思いますので、除外されたモジュールのリストに追加するためにメッセージを非アクティブにすることができます。 –

関連する問題