2013-11-27 27 views
8

Anaconda Python Distribution yüklüyse ve django uygulamamın içinden ipython manage.py shell'u çalıştırmayı denerseniz, aşağıdaki hata atılır. Anaconda'yı kurduğumda, sürümün sahip olduğum diğer python/ipython sürümlerinden farklı olan python ve ipython ile paketlendiğini biliyorum. Ama ipython versiyonundan bağımsız olarak, django kabuğu neden bir hata atmalı? Ben sistem ipython kaldırmayı denedim ve aynı hata atılır, hangi anaconda ipython dağıtım ve django ile bazı sorun olduğunu ima eder. Anaconda kaldırmak sorunu çözer.InteractiveShellEmbed'in birden çok uyumsuz alt sınıfı örneği oluşturuluyor

Sen

python manage.py shell 

değil

ipython manage.py shell 

manage.py kabuğu kullanmak istiyorum

manage.py in <module>() 
     9 
    10 if __name__ == "__main__": 
---> 11  execute_manager(settings) 

lib/python2.7/site-packages/django/core/management/__init__.pyc in execute_manager(settings_mod, argv) 
    457  setup_environ(settings_mod) 
    458  utility = ManagementUtility(argv) 
--> 459  utility.execute() 

lib/python2.7/site-packages/django/core/management/__init__.pyc in execute(self) 
    380    sys.stdout.write(self.main_help_text() + '\n') 
    381   else: 
--> 382    self.fetch_command(subcommand).run_from_argv(self.argv) 
    383 
    384 def setup_environ(settings_mod, original_settings_path=None): 

lib/python2.7/site-packages/django/core/management/base.pyc in run_from_argv(self, argv) 
    194   options, args = parser.parse_args(argv[2:]) 
    195   handle_default_options(options) 
--> 196   self.execute(*args, **options.__dict__) 
    197 
    198  def execute(self, *args, **options): 

lib/python2.7/site-packages/django/core/management/base.pyc in execute(self, *args, **options) 
    230    if self.requires_model_validation: 
    231     self.validate() 
--> 232    output = self.handle(*args, **options) 
    233    if output: 
    234     if self.output_transaction: 

lib/python2.7/site-packages/django/core/management/base.pyc in handle(self, *args, **options) 
    369   if args: 
    370    raise CommandError("Command doesn't accept any arguments") 
--> 371   return self.handle_noargs(**options) 
    372 
    373  def handle_noargs(self, **options): 

lib/python2.7/site-packages/django_extensions/management/commands/shell_plus.pyc in handle_noargs(self, **options) 
    116     try: 
    117      from IPython import embed 
--> 118      embed(user_ns=imported_objects) 
    119     except ImportError: 
    120      # IPython < 0.11 

lib/python2.7/site-packages/IPython/terminal/embed.pyc in embed(**kwargs) 
    298   config.InteractiveShellEmbed = config.TerminalInteractiveShell 
    299   kwargs['config'] = config 
--> 300  shell = InteractiveShellEmbed.instance(**kwargs) 
    301  shell(header=header, stack_depth=2, compile_flags=compile_flags) 

lib/python2.7/site-packages/IPython/config/configurable.pyc in instance(cls, *args, **kwargs) 
    358    raise MultipleInstanceError(
    359     'Multiple incompatible subclass instances of ' 
--> 360     '%s are being created.' % cls.__name__ 
    361   ) 
    362 

MultipleInstanceError: Multiple incompatible subclass instances of InteractiveShellEmbed are being created. 
+1

Tam olarak bilmiyorum, ancak kabuğu "python manage.py shell" olarak çalıştırıyorum ve ipython kabuğunu çalıştırıyorum. – greg

cevap

10

stacktrace gömülü ipython örneğini başlatır. Bunu ipython manage.py aracılığıyla çalıştırdığınızda, IPython'u gömmeye çalışan bir komut dosyasını çalıştırdığınız düzenli bir IPython oturumu başlatıyorsunuz. Bu iki örnek IPython başlatıyor demektir. Bu başarısız çünkü IPython kendi içine gömülü olamaz.

İlgili konular