2016-02-03 4 views
6

ich diesen Beitrag sah, wie ein Python-Skript von django auszuführen: http://www.djangotutsme.com/how-to-run-python-script-from-django/
ich das Beispiel versucht, aber die folgende Fehlermeldung erhalten, wenn python manage.py runscript myscript läuft . Ich habe Python 2.7, Django 1.10 und Django Erweiterungen 1.6.1 installiert.Python Fehler Attribut, wenn Skript ausgeführt wird: Typ Objekt ‚BaseCommand‘ hat kein Attribut ‚option_list‘

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/usr/lib/python2.7/site-packages/Django-1.10.dev20151201151517-py2.7.egg/django/core/management/__init__.py", line 349, in execute_from_command_line 
    utility.execute() 
    File "/usr/lib/python2.7/site-packages/Django-1.10.dev20151201151517-py2.7.egg/django/core/management/__init__.py", line 341, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/usr/lib/python2.7/site-packages/Django-1.10.dev20151201151517-py2.7.egg/django/core/management/__init__.py", line 193, in fetch_command 
    klass = load_command_class(app_name, subcommand) 
    File "/usr/lib/python2.7/site-packages/Django-1.10.dev20151201151517-py2.7.egg/django/core/management/__init__.py", line 40, in load_command_class 
    module = import_module('%s.management.commands.%s' % (app_name, name)) 
    File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
    File "/usr/lib/python2.7/site-packages/django_extensions-1.6.1-py2.7.egg/django_extensions/management/commands/runscript.py", line 6, in <module> 
    from django_extensions.management.email_notifications import \ 
    File "/usr/lib/python2.7/site-packages/django_extensions-1.6.1-py2.7.egg/django_extensions/management/email_notifications.py", line 10, in <module> 
    class EmailNotificationCommand(BaseCommand): 
    File "/usr/lib/python2.7/site-packages/django_extensions-1.6.1-py2.7.egg/django_extensions/management/email_notifications.py", line 49, in EmailNotificationCommand 
    **option_list = BaseCommand.option_list + (
AttributeError: type object 'BaseCommand' has no attribute 'option_list'** 

Irgendeine Idee, was das Problem ist? Ist das ein Fehler im Django?

+0

können Sie den Inhalt von myscript posten? – abidibo

Antwort

9

BaseCommand.option_list ist in Django 1.8 veraltet und in Django 1.10 entfernt. Es sieht aus wie Django-Erweiterungen has been updated, aber seitdem gab es keine neue Version.

Sie könnten versuchen, django-Erweiterungen aus dem Master-Zweig zu installieren, aber es wäre eine bessere Idee, die neueste Version von Django zu verwenden, derzeit 1.9.2. Django 1.10 wurde noch nicht veröffentlicht und ist noch in der Entwicklung.

+0

Vielen Dank. Das macht Sinn! Um 1.9.2 zu installieren, muss ich 1.10 deinstallieren oder kann ich einfach den Django-1.10.dev20151201151517-py2.7.egg/Ordner entfernen? –

+1

Wenn Sie Django mit pip installiert haben, können Sie 'pip install django == 1.9.2' installieren und die alte Version wird für Sie deinstalliert. Ich würde normalerweise versuchen, zu vermeiden, Eierbücher zu entfernen. – Alasdair

+0

Ich benutze ein Python-Installationsskript für Tarballs, geschrieben von einem Kollegen von mir, der hervorragend funktioniert. Ich benutzte es, als ich ursprünglich django, django-extensions und sechs installierte. Das Problem ist, dass ich eine virtuelle Maschine benutze, wo Proxy-Einstellungen für den Zugriff auf z. pypi.python.org funktioniert nicht, also ist der Versuch, pip zu installieren, ein bisschen b - h! Wie auch immer, nach dem Ausführen des Skripts und Überprüfen des Pfades zu Django in Python scheint es, dass Version 1.9.2. wird erkannt. –

Verwandte Themen