2013-04-04 103 views
0

當使用從QtConsole神奇功能%與編輯的IPython,調用不會阻塞,不執行保存的代碼。但它確實保存了一個臨時文件...IPython的QtConsole%編輯

我認爲這是由於GUI編輯器和不確定性,以及無法與子進程(pyZMQ?)進行通信的原因。

你認爲最好的混合%edit /%run magics的方法是什麼?

我不介意調用兩個不同的命令(一個編輯和一個後我已保存和執行是安全的)。但是這些命令需要一種方法來同步這個目標文件位置,或者需要某個人來保存存儲,並且可能需要一些可預測地生成文件名的粗略形式,以便您可以一次編輯多個文件,並且可以任意執行。會話持久性不是必須的。

會寫我自己的魔法有什麼好處嗎?希望我們能夠儘快編輯宏,這樣做可以很好地完成工作。

回答

1

你shoudl能夠做到%edit filename.py%run filename.py。由於技術上的原因,預計會發生非阻塞行爲,而IIRC則會發生。不是無法克服,但很難。

如果你願意,你可以定義你自己的魔法,歡迎改進。

希望我們能儘快編輯宏,這樣做可以很好地完成工作。

也太,PR的歡迎。我想作爲一種變通方法/選項,您可以%load macro這將使宏觀上輸入N + 1,編輯和重新定義它,這可能是一個良好的擴展性魔法細胞%%macro macroname

+0

我提到'%編輯宏'的原因是因爲相應的'%save macroname filename.ipy'。我的首選是儘可能保持我的輸入乾淨,並保持%編輯混亂。我喜歡%編輯宏是使用臨時文件* automagically *(所以我不必負擔路徑和文件名)。 – user2097818 2013-04-09 08:09:58

0

如果您對您輸入一些可執行代碼(來自QtConsole),你可以鍵入

%edit 1-5 

這激發了編輯器,創建一個臨時文件(自動管理),並加載你的輸入線。這已經足夠了,現在如何以實用的方式檢索該臨時文件的名稱?

我看到在標準輸出上打印語句,但它不是QtConsole AFAIK可見。也許可以重定向stdout來捕捉那條線,但是如果你使用stdout來做其他事情,這可能不是一個選項。

如果我可以檢索剛剛創建的完整路徑名,這將是蛋糕。將它存儲在一些魔術師會知道如何找到它的地方。然後在準備就緒時發出後續命令,從堆棧中彈出該名稱,將其加載到宏中,然後運行。所有這一切都與2個輸入指令,並沒有名字記(除非你想找到並再次使用該宏,但1分射門的東西...)

如何趕上或檢索臨時文件的路徑?

相關問題