instalar django django-settings

django - instalar - virtualenv python 3



¿Cómo puedo configurar correctamente DJANGO_SETTINGS_MODULE para mi proyecto Django(estoy usando virtualenv)? (5)

Acabo de encontrar el mismo error y, finalmente, logré averiguar qué estaba pasando (la gran pista estaba (Is it on sys.path?) En ImportError ).

Necesita agregar el directorio de su proyecto a PYTHONPATH - esto es lo que significa la documentación por

Tenga en cuenta que el módulo de configuración debe estar en la ruta de búsqueda de importación de Python.

Para hacerlo, corre

$ export PYTHONPATH=$PYTHONPATH:$PWD

desde el directorio ~/dev/django-project antes de ejecutar django-admin.py .

Puede agregar este comando (reemplazando $PWD con la ruta real a su proyecto, es decir , ~/dev/django-project ) al script source su virtualenv. Si elige avanzar a virtualenvwrapper en algún momento (que está diseñado para este tipo de situación), puede agregar la línea de export PY... al script de enganche postactivate generado postactivate .

mkdjangovirtualenv automatiza esto aún más, agregando la entrada apropiada a la ruta de Python para ti, pero no lo he probado yo mismo.

Estoy teniendo problemas para configurar el DJANGO_SETTINGS_MODULE para mi proyecto Django.

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 "blossom" con una aplicación dentro de él llamada "onora". La ejecución del tree -L 3 desde ~/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 django-admin.py dumpdata y luego ejecutar django-admin.py dumpdata

Sin embargo, estoy recibiendo el siguiente error:

ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.

Hice algunas búsquedas en Google y encontré esta página: https://docs.djangoproject.com/en/dev/topics/settings/#designating-the-settings

que me digas eso

Cuando usas Django, tienes que decirle qué configuraciones estás usando. Haga esto usando una variable de entorno, DJANGO_SETTINGS_MODULE. El valor de DJANGO_SETTINGS_MODULE debe estar en la sintaxis de ruta de Python, por ejemplo, mysite.settings. Tenga en cuenta que el módulo de configuración debe estar en la ruta de búsqueda de importación de Python.

¿Siguiendo una sugerencia en Setting DJANGO_SETTINGS_MODULE en virtualenv? Anexé las líneas

export DJANGO_SETTINGS_MODULE="blossom.settings" echo $DJANGO_SETTINGS_MODULE

a entorno virtual / bin / activar. Ahora, cuando ejecuto el comando activar para activar el entorno virtual, obtengo una lectura de salida:

DJANGO_SETTINGS_MODULE set to blossom.settings

Esto me parece bien, pero ahora el problema que tengo es que correr

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 comprobar el sys.path ? ¿Cómo se supone que esto funcione?

Gracias.


En una máquina similar a Unix puede simplemente crear un alias de virtualenv así y usar un alias en lugar de escribir cada vez:

.bashrc

alias cool=''source /path_to_ve/bin/activate; export DJANGO_SETTINGS_MODULE=django_settings_folder.settings; cd path_to_django_project; export PYTHONPATH=$PYTHONPATH:$PWD''


Mi alternativa favorita es pasar el archivo de configuración como parámetro de tiempo de ejecución a manage.py en una sintaxis de paquete python, por ejemplo:

python manage.py runserver --settings folder.filename

más información docs django


No ejecute django-admin.py para otra cosa que no sea la creación inicial del proyecto. Para todo después de eso, usa manage.py , que se encarga de encontrar la configuración.


Sé que hay muchas respuestas, pero esta me funcionó solo para el registro.

  1. Navegue a su carpeta .virtual_env donde están todos los entornos virtuales.
  2. Vaya a la carpeta de entorno específica de su proyecto.
  3. export DJANGO_SETTINGS_MODULE=<django_project>.settings o export DJANGO_SETTINGS_MODULE=<django_project>.settings.local si está usando un archivo de configuración separado almacenado en una carpeta de configuración.