2016-03-23 2 views
1
#!/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 

essayer:AttributeError: l'objet 'module' n'a pas d'attribut 'setup'; configuration django travaillant dans un projet, mais pas d'autres

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 

si je retire la tentative d'installation Je ne peux pas importer des applications:

#!/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 

essayer:

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 

dans manage.py:

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

Ainsi, mon paramètre os.environ correspond au format d'un autre projet. Je cours ce script de la même manière dans l'autre projet django et cela fonctionne, mais pas dans mon webapi. Ces projets sont sur pythonpath. Comment puis-je configurer Django? Merci

+1

L'erreur suggère que vous utilisez Django 1.6 ou plus, dans ce cas, vous ne besoin d'appeler 'setup()'. – knbk

+0

Le module 'django.apps' a été ajouté dans Django 1.7. Vous devrez mettre à jour Django ou changer le script pour qu'il fonctionne avec votre version de Django. La mise à niveau est recommandée, car les versions 1.7 et antérieures sont désormais en fin de vie et ne reçoivent pas de correctifs de sécurité. – Alasdair

+0

sans la configuration que j'obtiens ImportError: Aucun module nommé apps – codyc4321

Répondre

2

Vous devez mettre à niveau votre version de Django vers une version prise en charge. Les nouvelles versions de Django ont la fonction setup. Voir la list of supported Django versions

La réponse était dans les commentaires:

The error suggests that you're running Django 1.6 or older, in which case you don't need to call setup(). – knbk Mar 23 '16 at 16:14

The django.apps module was added in Django 1.7. You'll need to upgrade Django or change the script to work with your version of Django. Upgrading is recommended, because 1.7 and older are now end of life, and do not receive security fixes. – Alasdair Mar 23 '16 at 16:23

Both django.setup() and django.apps were added in 1.7.