2011-12-13 61 views
13

我想添加一些命令行選項到python啓動代碼,以便實際調用ipython shell。我怎麼做?如何通過運行'python ...'從shell啓動ipython?

+10

你能解釋你的*真實*問題嗎?我的意思是,這個黑客應該解決哪個實際問題? –

+0

我使用的IDE對交互式shell提供有限的支持以在(pycharm)中運行腳本,我希望能夠以更具交互性的方式運行腳本,例如IEP。 – Shwouchk

+0

此修補程序也可以在Windows環境中工作 – Shwouchk

回答

21

要直接在Python啓動IPython的外殼:

from IPython import embed 

a = "I will be accessible in IPython shell!" 

embed() 

或者,乾脆從命令行中運行:

$ python -c "from IPython import embed; embed()" 

embed將使用shell中的所有局部變量。

如果你想提供自定義的當地人(帶殼訪問的變量)來看看IPython.terminal.embed.InteractiveShellEmbed

+0

我不再使用該環境或操作系統,但我認爲這會奏效。謝謝! – Shwouchk

2

「python啓動代碼」的含義並不完全清楚;我認爲這是指用來啓動Python的shell代碼。

在Unix上,你可以使用alias到另一個替換一個命令:

[email protected]:~$ alias python=ipython 
[email protected]:~$ python 
Enthought Python Distribution -- http://www.enthought.com 

Python 2.7.1 |EPD 7.0-2 (64-bit)| (r271:86832, Nov 29 2010, 13:51:37) 
Type "copyright", "credits" or "license" for more information. 

IPython 0.10.1 -- An enhanced Interactive Python. 
?   -> Introduction and overview of IPython's features. 
%quickref -> Quick reference. 
help  -> Python's own help system. 
object? -> Details about 'object'. ?object also works, ?? prints more. 

In [1]: 

如果這不是你想要的,請澄清你的問題。

+0

謝謝,但我需要這個在Windows上工作... – Shwouchk

6

要做到你要求什麼了,即添加命令行選項來一個python調用實際調用IPython中,你可以這樣做:

python -c 'import subprocess; subprocess.call("ipython")' 

我無法想象,但是,任何情況下,這哪裏會很有用。

+0

糾正我,如果我錯了,但這樣,任何命令傳遞和腳本文件將仍然運行在python而不是ipython,對吧? – Shwouchk

+0

@Shwouchk:你原來的問題提供的信息非常少 - 這個答案是我可以給出的最佳猜測。從評論到你原來的問題,我會認爲這個解決方案不會對你有所幫助,但試試看怎麼樣? –

+0

這實際上解決了一個相關的問題,我從emacs提示符運行ipython,否則我無法正確地將輸出刷新到emacs緩衝區。 – flatline

1

我想你的意思是這樣python C:\Python27\Scripts\ipython-script.py

2

可能的選項只是爲了嵌入ipython在你的代碼是這樣

def some_function(): 
    some code 

    import Ipython 
    Ipython.embed() 

當您運行在它將啓動的某些代碼中起作用,並且ipython終端的作用範圍是被調用函數的範圍。

相關問題