2016-02-03 71 views
6

我看到如何運行Django的Python腳本這個帖子:運行python manage.py runscript myscripthttp://www.djangotutsme.com/how-to-run-python-script-from-django/
我試過的例子,但出現以下錯誤。 我有Python 2.7,Django 1.10和django擴展1.6.1安裝。Python的屬性錯誤:對象類型「BaseCommand」有沒有屬性「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'** 

任何想法是什麼問題是?這是在Django中的錯誤?

+0

你可以發佈myscript的內容嗎? – abidibo

回答

9

BaseCommand.option_list已在Django 1.8中棄用,並在Django 1.10中刪除。它看起來像Django擴展has been updated,但從那時起,還沒有一個新的版本。

您可以嘗試從主分支安裝django-extensions,但使用最新版本的Django(當前是1.9.2)會更好。 Django 1.10尚未發佈,目前仍在開發中。

+0

非常感謝。這就說得通了!要安裝1.9.2,我需要卸載1.10還是隻能刪除Django-1.10.dev20151201151517-py2.7.egg /文件夾? –

+1

如果你使用pip安裝了Django,你可以執行'pip install django == 1.9.2',它會爲你卸載舊版本。我通常會盡量避免去除雞蛋目錄。 – Alasdair

+0

我正在使用一個python安裝腳本來執行tarballs,這個腳本是由我的一個同事編寫的,它很出色。當我最初安裝django,django-extensions和six時,我使用它。問題是我正在使用虛擬機,在其中使用代理環境設置來訪問pypi.python.org不起作用,所以試圖安裝pip是一點點b!h!無論如何,在運行腳本並在python中檢查django的路徑之後,似乎是版本1.9.2。被認可。 –

相關問題