22

私は今Pythonで約1か月間浮気していて、何かが気になっています。きちんとしたSpyderIDEに付属しているpython(x、y)ツールキットを使用しています。私の質問は、SpyderのUMD(ユーザーモジュール削除機能)に関するものです。

私はインターネットでこのグラフィックモジュールを見つけました。これ は、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)を表示する前にメッセージを表示します

4

1 に答える 1

44

短い答え:

おそらく削除はあなたが言及するメッセージの中で最高の言葉ではありません。リロードする必要があります。これは、UMDが実際に行っていることであり、混乱がはるかに少ないためです。この問題については、課題追跡システムで入力します。

長い答え:

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

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

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

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

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

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

于 2012-12-15T15:51:38.310 に答える