2013-06-12 31 views
0

在Django框架您可能會遇到蟒蛇:負載節儉類和運行交互shell

./manage.py shell 

,您就可以使用Django設置裏面交互的shell。我可以運行使用

#!/usr/bin/env python 
import code 

code.interact(local=locals()) 

我想要做的一樣的Django做了Python交互控制檯 - 執行python腳本,以獲得交互shell內(與本地舊貨包已經導入了 - 這就是線索)。

回答

1

我不太清楚「我的本地節儉套件已經導入」是什麼意思,但是如果你想用全局命名空間中已經定義的一組特定符號啓動一個交互式shell,我會做它在一個函數中,並在那裏的符號,以避免污染子shell與你的代碼中的任何不需要的符號。

例如,如果你想與sysos啓動一個交互的shell已經進口的,那麼這樣的事情應該工作...

>>> import code 
>>> def start_shell(): 
...  import sys, os 
...  code.interact(local=locals()) 
... 
>>> start_shell() 
Python 2.7.4 (default, Apr 19 2013, 18:28:01) 
[GCC 4.7.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
(InteractiveConsole) 
>>> dir() 
['__builtins__', 'os', 'sys'] 

......注意到sysos定義,但不是code,因爲它被導入到全局名稱空間中,而不是本地名稱空間中。