2011-08-10 37 views
6

Soy un novato en Django y cada vez que intento ejecutar python panel/manage.py startapp %app% (panel es mi proyecto) me da el error:No se puede iniciar cualquier aplicación Django

Error: '%app%' conflicts with the name of an existing Python module and cannot be used as an app name. Please try another name. 

¿Estoy haciendo algo mal?

Sin duda, las empresas o los contactos o las estadísticas no es el nombre de un módulo de Python existente?

Respuesta

5

quizás necesite

cd panel 
python manage.py startapp yourappname 

No estoy seguro de que ejecuta el comando desde un directorio por encima de su proyecto funcionará correctamente.

+0

Tal vez algo como esto puede estar en Linux, pero el error de los autores nos dice que Django intentó crear una aplicación, pero tiene un conflicto con el módulo de Python. – Dracontis

+0

Pero el mensaje de error parece incorrecto, así que estoy adivinando algo más que parece extraño. – Leopd

+1

Cualquier directorio en la ruta de Python (que incluye el directorio actual) que tiene un archivo '__init __. Py' se considera un módulo. –

1

probar "mysite" clásico o "miproyecto". Puede eliminarlo en cualquier momento que lo desee, por lo tanto, si lo acepta, todas sus ideas privilegiadas entrarán en conflicto con los módulos de Python.

Edición: He intentado todas sus ideas, no hubo un error para mí. Entonces, si instaló bibliotecas o módulos de soporte para django, algunos de ellos pueden contener dichos nombres.

8

Esta es una diversión - su proyecto y su aplicación necesidad de tener diferentes nombres. Probablemente creaste un proyecto, luego trataste de apostar con el mismo nombre.

2

Este mensaje se muestra si ejecuta "startapp" dos veces con el mismo nombre de la aplicación. Como se indicó anteriormente por el OP, no vuelve a cargar la aplicación, sino que crea una.

+1

Entonces, ¿cómo lo arreglas? Creé la aplicación en el directorio incorrecto la primera vez. –

9

Estaba confundido, así, hasta que di cuenta de que un proyecto Django es un contenedor para aplicaciones; esta secuencia hace que sea un poco más claro:

# first create a Project (container). 
django-admin.py startproject Project 

# create multiple apps 
cd Project 
python manage.py startapp polls 
python manage.py startapp hello 
... 
+0

Ah sí, gracias por compartir eso probablemente aclarará mucho para algunas personas. – Darren

1

Supongo que tal vez ya ha creado dir de la aplicación en el panel dir manualmente. El comando 'startapp' es crear una aplicación automáticamente. Si ya tienes uno allí, falla.

0

este error se debe a los conflictos de nombre entre el nombre de la aplicación y el nombre del proyecto. Usted ha dado el mismo nombre para su aplicación y proyecto. Su proyecto y aplicación deben tener un nombre diferente. Si le ha dado el mismo nombre el error mencionado ocurrirá.

entender la diferencia entre la aplicación y el proyecto

Proyectos vs. aplicaciones

¿Cuál es la diferencia entre un proyecto y una aplicación? Una aplicación es una aplicación web que hace algo, por ejemplo, un sistema de Weblog, una base de datos de registros públicos o una aplicación de encuesta simple. Un proyecto es una colección de configuración y aplicaciones para un sitio web en particular. Un proyecto puede contener múltiples aplicaciones. Una aplicación puede estar en proyectos múltiples.

En primer lugar crear el proyecto. luego crea la aplicación.

NOTA: El nombre de la aplicación y del proyecto debe ser diferente

En primer lugar crear un proyecto con projectname

django-admin.py startproject Projectname . 

A continuación, cree aplicación con nombreaplic. (Para crear su aplicación para asegurarse de que está en el mismo directorio y manage.py de escribir este comando)

python manage.py startapp Appname 
0

tuve el mismo problema porque yo estaba tratando de "reiniciar" mi aplicación después de realizar los cambios, pero startapp está destinado a ser utilizado una vez para crear una nueva aplicación. Para ver los cambios, sincronice la aplicación con DB con python manage.py migrate y reinicie el servidor con python manage.py runserver.

Desde el django-admindocs

(manage.py does essentially the same thing as django-admin)

startapp <app_label> [destination]

django-admin startapp

Creates a Django app directory structure for the given app name in the current directory or the given destination.

By default the directory created contains a models.py file and other app template files. (See the source for more details.) If only the app name is given, the app directory will be created in the current working directory.

If the optional destination is provided, Django will use that existing directory rather than creating a new one. You can use ‘.’ to denote the current working directory.

For example:

django-admin startapp myapp /Users/jezdez/Code/myapp

1

Es es el proceso de cómo llegué a mi duda clara.

Primero, creé un directorio dentro del directorio de mi proyecto y puse __init__.py, models.py, admin.py, apps.py & views.py.

Luego ejecuté python manage.py runserver & Funciona bien.

Luego, como se sugiere en esa página, utilicé el comando startapp. Tengo este error:

CommandError: 'ucportal' conflicts with the name of an existing Python 
module and cannot be used as an app name. Please try another name. 

Después de que he eliminado ese directorio y corrí comando startapp con el mismo nombre y funcionó bien.

El comando 'startapp' es crear una aplicación automáticamente. Si ya tienes uno allí, falla.

La respuesta dada por @DAG funcionó para mí.

Cuestiones relacionadas