AttributeError:'模块'对象没有属性' setup&#39 ;; django设置在一个项目中工作,但不在其他项目中

时间:2016-03-23 16:11:08

标签: python django django-settings

#!/usr/bin/env python
# coding: utf-8

import os, sys, subprocess, time, re, ast

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "webapi.server.project.settings")

import django
django.setup()

from django.apps import apps

尝试:

cchilders: ./write_creation_tests.py 
Traceback (most recent call last):
  File "./write_creation_tests.py", line 17, in <module>
    django.setup()
AttributeError: 'module' object has no attribute 'setup

如果我删除设置尝试,则无法导入应用:

#!/usr/bin/env python
# coding: utf-8

import os, sys, subprocess, time, re, ast

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "webapi.server.project.settings")

from django.apps import apps

尝试:

cchilders: ./write_creation_tests.py 
Traceback (most recent call last):
  File "./write_creation_tests.py", line 19, in <module>
    from django.apps import apps
ImportError: No module named apps

在manage.py中:

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "webapi.server.project.settings")

因此我的os.environ设置与另一个项目中的格式匹配。我在其他django项目中以相同的方式运行此脚本并且它可以工作,但不在我的webapi中。这些项目在pythonpath上。我怎样才能设置django?谢谢

1 个答案:

答案 0 :(得分:2)

您需要将Django版本升级到支持的版本。较新版本的Django具有setup功能。请参阅list of supported Django versions

答案在评论中:

  

错误表明你正在运行Django 1.6或更早版本,在这种情况下你不需要调用setup()。 - knbk 2016年3月23日16:14

  

Django 1.7中添加了django.apps模块。您需要升级Django或更改脚本以使用您的Django版本。建议进行升级,因为1.7及更早版本现已停止使用,并且不会收到安全修复程序。 - Alasdair 2016年3月23日16:23

  

django.setup()和django.apps都是在1.7中添加的。