2016-02-03 114 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。被认可。 –

相关问题