Soy ingeniero de software junior y soy bastante nuevo en Django. Construí esta aplicación y estoy trabajando en un archivo LÉAME para explicar a otros cómo bifurcar, clonar y configurar el aplicación en sus propias máquinas. Me he quedado atascado al intentar recrear los pasos.

Este es el orden en que he trazado los pasos:

  1. Bifurca y clona el repositorio
  2. Fuente de un entorno virtual
  3. Requisitos de instalación de pip.txt
  4. Obtenga access_token y secret_key y guárdelo en secret.sh
  5. Configure una base de datos Postgres, cree un usuario y una base de datos
  6. Migrar (?) - ¡Aquí es donde me quedo atascada!

Intenté migrar la aplicación pero no hay migraciones para aplicar.

Intenté django-admin startproject ig_miner_app. pero obtengo este código de error:

CommandError: /Users/Erin/Desktop/CodeByEAllard/project/instagram_miner/manage.py already exists, overlaying a project or app into an existing directory won't replace conflicting files

Si puedo solucionar esto, debería poder ejecutar el servidor como siempre, ¿verdad?

Estoy seguro de que me falta algo (o muchas cosas) pero no sé cuáles son. ¡Me siento tonto porque obviamente pude crear la aplicación en primer lugar, pero no puedo entender cómo explicarle a alguien que haga lo mismo! ¿Alguno tiene sugerencias sobre cómo ejecutar el servidor?

¡Gracias!

31
allardbrain 8 may. 2016 a las 00:43

7 respuestas

La mejor respuesta

En primer lugar, obtiene ese error porque está iniciando un proyecto dentro del mismo directorio que el proyecto clonado, este directorio ya contiene una aplicación con el nombre ig_miner_app, de ahí el conflicto de nombres.

En cuanto a los pasos para que otros usuarios ejecuten el proyecto, esto debería funcionar.

Clonar el proyecto

git clone https://github.com/erinallard/instagram_miner.git 

Crear e iniciar un entorno virtual

virtualenv env --no-site-packages

source env/bin/activate

Instale las dependencias del proyecto:

pip install -r requirements.txt

Crear un archivo llamado "secrets.sh"

touch secrets.sh (mac y linux)

Obtenga un secreto de la MiniWebTool y agréguelo a secrets.sh

export SECRET_KEY='<secret_key>'

Agregue secrets.sh al archivo .gitignore

Cree una base de datos postgres y agregue las credenciales a settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'db_name',
        'USER': 'name',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': '',
    }
}

A continuación, ejecutar

python manage.py migrate

Crear cuenta de administrador

python manage.py createsuperuser

Entonces

python manage.py makemigrations ig_miner_app

Hacer migraciones para la aplicación

Luego corre de nuevo

python manage.py migrate

Para iniciar el servidor de desarrollo

python manage.py runserver

Y abra localhost: 8000 en su navegador para ver la aplicación.

Creo que esto debería poner la aplicación en funcionamiento en las máquinas de otros. Avíseme si se queda atascado en alguno de estos pasos, de modo que realice modificaciones, de lo contrario, puede usarlo y agregar cualquier otra información relevante que podría no haber agregado.

25
phd 13 jul. 2017 a las 21:21

Como dijiste, una vez que clonas el repositorio, debes instalar los requisitos

pip install -r requirements.txt

Después de eso, debe configurar la base de datos. Agregue los detalles a settings.py

Una vez que se haya hecho y tenga las claves y los secretos, debe realizar migraciones y luego migrar.

Cd en el directorio de la aplicación y ejecutar

python manage.py makemigrations

Para crear archivos de migración para los modelos ya definidos en los códigos que ha clonado. después de eso tienes que correr

python manage.py migrate

Para aplicar las migraciones que en efecto crea las tablas de la base de datos.

Ahora que realiza cambios en los modelos o agrega modelos o campos adicionales, debe ejecutar los dos últimos comandos nuevamente.

0
sprksh 8 may. 2016 a las 06:55

Mi IDE parece activar automáticamente un venv si reside dentro del directorio del proyecto, lo que me provocó un error continuo cuando cloné desde git.

ModuleNotFoundError: No module named ''

Tuve que eliminar manualmente el venv original y crear un nuevo entorno virtual, luego ejecuté estos comandos. Trabajó como un PyCharm después :)

pip install -r requirements.txt

python manage.py collectstatic

0
TechBrad 9 jul. 2019 a las 03:35

Intente pasar el nombre de la aplicación al comando migrate:

manage.py migrate ig_miner_app
0
ahmed 7 may. 2016 a las 21:57

Tomo los siguientes pasos después de clonar el proyecto desde GitHub:

pip3 install virtualenv
virtualenv -p python3 env
source env/bin/activate
pip install django
django-admin startproject <mysite>
python manage.py startapp polls 
python manage.py runserver
on terminal: python manage.py makemigrations <app_name>
python manage.py migrate

Estas funcionan bien en mi sistema.

0
Igor Cova 25 jul. 2018 a las 18:55
  1. Crea virtualenv y actívalo.
  2. Instalar todas las dependencias.
  3. cd en el directorio de inicio del proyecto.
  4. ejecute $ python manage.py runserver.
0
Debanjan Barman 26 oct. 2019 a las 04:49

Hola @allardbrain y bienvenido al maravilloso mundo del desarrollo ^ _ ^

Si bien mi esperanza es que este problema ya se haya resuelto, si puedo, revisemos algo muy rápido: estoy seguro de que otros lo han hecho y están cometiendo este error.

Intenté 'django-admin startproject ig_miner_app. pero obtengo este código de error:

"CommandError:" yadda yadda yadda ...

Django en realidad tiene una documentación INCREÍBLE. Los chicos detrás de esto eran en realidad Escritores y Periodistas y no los típicos chicos de CS.

Lo que intento decir es que, cuando aprenda algo nuevo, lea la Documentación; ejecuta el Tutorial de la aplicación Tareas pendientes. Este es el por qué..

django-admin startproject

Esto ya se ha satisfecho si está extrayendo una copia de trabajo de una Aplicación preexistente. Su preocupación debe ser ante todo con este archivo ...

requirements.txt

Aquí es donde las DevDependencies expresan sus demandas, si lo desea, de manera similar a su base

package.json 

De todos modos, solo digo esto porque pasé los primeros años de mi carrera terco y a menudo me sorprendí hojeando documentos y, al final del día, creando dolores de cabeza para mí y los pobres bastardos encargados de supervisar mi torpe trasero: ) Grandes tiempos, esos ...

Saludos a todas

1
Abraxas 18 oct. 2017 a las 03:25