web-dev-qa-db-ja.com

スパイダー-UMDが削除しました:モジュール

私はpythonで約1か月間浮気していて、何かが気になっています。きちんとしたSpyder IDEに付属しているpython(x、y)ツールキットを使用しています。私の質問はSpyderのUMD(User module deleter)。

私はインターネットで 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行目は明らかに大丈夫です。 3行目もそうですが、2行目は表示されません。また、トリガーされたウィンドウが画面の内外で点滅します。 2行目は害を及ぼさないようで、ファイルを何度でも完全に再実行できますが、どこから来ているのか知りたいです。

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

注:最初の質問ですので、質問のスキルを向上させるために、そのがらくたをコメントしてください。

編集:私はテスト行print p.sqrt(4)をシフトしてみましたが、どこに置いても問題ないことがわかりました。モジュールをインポートした後の最初の行の場合、sqrt(4)を表示する前にメッセージを消去します

22
Kraay89

短い答え:

おそらく、deletedは、あなたが言及しているメッセージで最高のWordではありません。それはreloadedである必要があります。これは、UMDが実際に行っていることであり、混乱がはるかに少ないためです。これについては、Issue Trackerで問題を入力します。

長い答え:

UMDは、スクリプトだけでなく、スクリプトが依存するすべてのローカルモジュールもリロードします。 localとは、Pythonインストールの外部にあり、書き込み権限があるモジュールを意味します。

アイデアは、スクリプトの隣に、それに対応する補助関数のライブラリを開発した可能性があるということです。したがって、ライブラリへの変更が実行時に反映されるように、おそらくそのライブラリもリロードする必要があります。

これはあなたのケースではないことを私は知っているので、そのメッセージを削除したい場合は、次の場所にアクセスできます。

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

オプションを無効にします

リロードされたモジュールのリストを表示します

44
Carlos Cordoba