2013-09-25 8 views
5

私はvirtualenvにipythonをインストールしましたので、python manage.py shellは私のipythonを提供します。しかし、私は、関数定義の内部からの輸入にアクセスすることはできません:私は直接ipythonを開始した場合Djangoのシェルでipythonでインポートされた関数にアクセスできないのはなぜですか?

$ python manage.py shell 
Python 2.7.5 (default, Sep 6 2013, 09:55:21) 
Type "copyright", "credits" or "license" for more information. 

IPython 1.1.0 -- An enhanced Interactive Python. 
?   -> Introduction and overview of IPython's features. 
%quickref -> Quick reference. 
help  -> Python's own help system. 
object? -> Details about 'object', use 'object??' for extra details. 

In [1]: from re import search 

In [2]: def my_search(pattern, string): 
    return search(pattern, string) 
    ...: 

In [3]: my_search('x', 'y') 
--------------------------------------------------------------------------- 
NameError         Traceback (most recent call last) 
/home/wilfred/.envs/drawbridge/lib/python2.7/site-packages/django/core/management/commands/shell.pyc in <module>() 
----> 1 my_search('x', 'y') 

/home/wilfred/.envs/drawbridge/lib/python2.7/site-packages/django/core/management/commands/shell.pyc in my_search(pattern, string) 
     1 def my_search(pattern, string): 
----> 2  return search(pattern, string) 
     3 

NameError: global name 'search' is not defined 

は、これが正常に動作します。なぜDjangoシェルで動作しないのですか?

答えて

関連する問題