デバッグ中に使用しているオブジェクトに関する情報を表示できるようにするために、スクリプトを作成して-i引数を付けて実行しています。現在のパッケージをインポート中
スクリプトを終了して再実行するのを避けるために、スクリプトを変更して保存して[スクリプト名]をインポートし、[スクリプト名]でメインメソッドを呼び出すことができるとわかりました。メインメソッド]()。
今、私はありません(便宜上)単一文字方式書きたい:
def x():
import [this script]
[this script].[main-method]()
だけでなく、スクリプトのファイル名を変更し、変更することなく、簡単リロード機能を保持することができるようにしますコード。
importlib(下記参照)を使用して無駄にしてみました。
def y():
import importlib
this = importlib.import_module("".join(sys.argv[0].split(".py"))) # sys.argv[0] gives [module-name].py and the rest of the code inside the parentheses removes the ".py"
this.[main-method]()
これは、私に "ImportError:内部モジュール__main__を再初期化できません"という結果をもたらします。メインモジュールをリロードすることは例外ですか? – PistoletPierre
はい。コマンドラインからこれを試してはいけません。 \ _ \ _ main \ _ \ _はあなたが入力したすべてのものを含む "モジュール"です。あなたはそれをリロードすることはできません。 –
面白いことに、すべてのアンダースコアの前にバックスラッシュを使用して、特別な意味を削除することができます。これを試してください:\\ _ \\ _メイン\\ _ \\ _ –