Tengo problemas para configurar DJANGO_SETTINGS_MODULE para mi proyecto Django.¿Cómo puedo establecer correctamente DJANGO_SETTINGS_MODULE para mi proyecto Django (estoy usando virtualenv)?
Tengo un directorio en ~/dev/django-project
. En este directorio tengo un entorno virtual que he configurado con virtualenv, y también un proyecto django llamado "flor" con una aplicación llamada "onora". Correr tree -L 3
de ~/dev/django-project/
me muestra lo siguiente:
.
├── Procfile
├── blossom
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── fixtures
│ │ └── initial_data_test.yaml
│ ├── manage.py
│ ├── onora
│ │ ├── __init__.py
│ │ ├── __init__.pyc
│ │ ├── admin.py
│ │ ├── admin.pyc
│ │ ├── models.py
│ │ ├── models.pyc
│ │ ├── tests.py
│ │ └── views.py
│ ├── settings.py
│ ├── settings.pyc
│ ├── sqlite3-database
│ ├── urls.py
│ └── urls.pyc
├── blossom-sqlite3-db2
├── requirements.txt
└── virtual_environment
├── bin
│ ├── activate
│ ├── activate.csh
│ ├── activate.fish
│ ├── activate_this.py
│ ├── django-admin.py
│ ├── easy_install
│ ├── easy_install-2.7
│ ├── gunicorn
│ ├── gunicorn_django
│ ├── gunicorn_paster
│ ├── pip
│ ├── pip-2.7
│ ├── python
│ └── python2.7 -> python
├── include
│ └── python2.7 -> /System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7
└── lib
└── python2.7
Estoy tratando de volcar mis datos de la base de datos con el comando
django-admin.py dumpdata
Mi enfoque es ejecutar cd ~/dev/django-project
y luego ejecutar source virtual_environment/bin/activate
y luego ejecutar django-admin.py dumpdata
Sin embargo, estoy consiguiendo el error siguiente:
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.
he hecho un poco buscando en Google y encontré esta página: https://docs.djangoproject.com/en/dev/topics/settings/#designating-the-settings
que me diga que
When you use Django, you have to tell it which settings you're using. Do this by using an environment variable, DJANGO_SETTINGS_MODULE. The value of DJANGO_SETTINGS_MODULE should be in Python path syntax, e.g. mysite.settings. Note that the settings module should be on the Python import search path.
Siguiendo una sugerencia en Setting DJANGO_SETTINGS_MODULE under virtualenv? I adjuntas las líneas
export DJANGO_SETTINGS_MODULE="blossom.settings"
echo $DJANGO_SETTINGS_MODULE
a virtual_environment/bin/activar. Ahora, cuando ejecuto el comando de activación para activar el entorno virtual, consigo la lectura de salida:
DJANGO_SETTINGS_MODULE set to blossom.settings
Esto se ve bien para mí, pero ahora el problema que tengo es que la ejecución de
django-admin.py dumpdata
devuelve el siguiente error:
ImportError: Could not import settings 'blossom.settings' (Is it on sys.path?): No module named blossom.settings
¿Qué estoy haciendo mal? ¿Cómo puedo verificar el sys.path
? ¿Cómo se supone que esto funcione?
Gracias.
Gracias - 'python blossom/manage.py dumpdata' funcionó como se esperaba. – Deonomo
Es cierto. Entonces, ¿por qué los documentos django dicen "Use exactamente uno de configure() o DJANGO_SETTINGS_MODULE. No ambos, y ** no ninguno **". ? https://docs.djangoproject.com/en/dev/topics/settings/ – lajarre
Pensamiento actual: como aparece en el [sitio "DeployDjango"] (http://www.deploydjango.com/django_project_structure/index.html) y el reciente * [Two Scoops of Django] (http://django.2scoops.org/) * book - es que 'django-admin.py' con configuraciones separadas funciona perfectamente bien, y en realidad es preferible al uso de' manage. py'. – supervacuo