unknown example python django django-syncdb

example - django y python



Principiante de Django/Python: Error al ejecutar python manage.py syncdb-psycopg2 no encontrado (13)

Tengo Pythong2.6, psycopg2 y pgAdmin3 instalados usando Macports. Mi settings.py es:

DATABASE_ENGINE = ''postgresql_psycopg2'' # ''postgresql_psycopg2'', ''postgresql'', ''mysql'', ''sqlite3'' or ''oracle''. DATABASE_NAME = ''mysite'' # Or path to database file if using sqlite3. DATABASE_USER = ''postgres'' # Not used with sqlite3. DATABASE_PASSWORD = '''' # Not used with sqlite3. DATABASE_HOST = '''' # Set to empty string for localhost. Not used with sqlite3. DATABASE_PORT = '''' # Set to empty string for default. Not used with sqlite3.

El error que obtengo cuando ejecuto python manage.py syncdb es:

Traceback (most recent call last): File "manage.py", line 11, in <module> execute_manager(settings) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/__init__.py", line 362, in execute_manager utility.execute() File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/__init__.py", line 303, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 195, in run_from_argv self.execute(*args, **options.__dict__) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 221, in execute self.validate() File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 249, in validate num_errors = get_validation_errors(s, app) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/validation.py", line 22, in get_validation_errors from django.db import models, connection File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 41, in <module> backend = load_backend(settings.DATABASE_ENGINE) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 17, in load_backend return import_module(''.base'', ''django.db.backends.%s'' % backend_name) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module __import__(name) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 22, in <module> raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e) django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2

Tenga en cuenta que soy un principiante completo en esto. Originalmente soy un tipo PHP y estoy probando Python para un pequeño proyecto personal. ¿Debo "activar" Postgres?

Además, cuando sudo python manage.py runserver 8080 obtengo este error:

Validating models... Unhandled exception in thread started by <function inner_run at 0x1242670> Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/commands/runserver.py", line 48, in inner_run self.validate(display_num_errors=True) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 249, in validate num_errors = get_validation_errors(s, app) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/validation.py", line 22, in get_validation_errors from django.db import models, connection File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 41, in <module> backend = load_backend(settings.DATABASE_ENGINE) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 17, in load_backend return import_module(''.base'', ''django.db.backends.%s'' % backend_name) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module __import__(name) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 22, in <module> raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e) django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2

Por favor guíame. Cualquier respuesta será apreciada.

Gracias,

Wenbert!


Aunque lo instaló, Python aparentemente no puede encontrar el módulo psycopg2. Esto generalmente se debe a que el módulo no está en la ruta de Python. Vea si puede encontrar una carpeta llamada psycopg2 en /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages . Si no está allí, ¿MacPorts te dijo dónde puso psycopg2? Si puede localizarlo, simplemente muévalo al directorio de site-packages y estará bien.



Estoy en Windows y había instalado psycopg2, pero la versión de 64 bits. Así que mi solución fue descargar la de 32 bits de here luego en PowerShell con mi entorno virtual activado, mi solución fue:

pip uninstall psycopg2 easy_install C:/WHEREVER_I_DOWNLOADED_IT/psycopg2-2.6.1.win32-py3.4-pg9.4.4-release.exe

(El instalador de Windows Python 3.4 instala automáticamente easy_install y pip, y pip es la forma más fácil de eliminar el paquete, incluso si se instaló originalmente usando easy_install).


La respuesta de Tim también funcionó para mí. De forma predeterminada, settings.py muestra opciones como ''postgresql_psycopg2'', ''mysql'', etc., sin un nombre de paquete. Prefijo con ''django.db.backends''. funcionó para mí (para postgresql_psycopg2, al menos).


Me di cuenta de que no tenía psycopg2 instalado

aptitude install python-psycopg2

Trabajado como un encanto


Para el registro obtuve el mismo error por un motivo diferente:

Me había puesto

''ENGINE'': ''django.db.backends.postgresql''

en lugar de

''ENGINE'': ''django.db.backends.postgresql_psycopg2''

en settings.py


Para mí, psycopg2 efectivamente se instaló, pero no en el virtualenv en el que Django se estaba ejecutando. Estos dos pasos lo arreglaron:

sudo apt-get build-dep python-psycopg2 sudo /opt/myenv/bin/pip install psycopg2


Parece que hay un problema con su instalación de psycopg2 : Python no lo encuentra. Este es un problema de instalación de Python, no un problema de Django.

Puede intentar cargarlo manualmente utilizando el intérprete de Python y ver si funciona:

$ python >>> import psycopg2

Si obtiene una excepción ImportError , su instalación es errónea. Para obtener una lista de todos los directorios Python busca módulos, use sys.path :

$ python >>> import sys >>> print sys.path

También puede agregar directorios personalizados a la ruta de búsqueda del módulo de Python modificando la variable sys.path . Haga esto en algún lugar antes de las respectivas declaraciones de import :

import sys sys.path.append("my-path") # ... import psycopg2


Sí, la respuesta de Tim también funciona para mí. Funciona sin el prefijo ''django.db.backends''. además. Pero recuerde crear la base de datos o el esquema que mencionó en settings.py:

DATABASE_NAME = ''your_db_name''

usando manualmente su cliente de base de datos para que cuando ejecute ''python manage.py syncdb'' no tenga el mismo problema. Estaba atrapado porque no lo creé manualmente. Tengo el mismo problema puede ser porque utilicé buildout.


Si tiene instalado pip , simplemente instale la extensión faltante ejecutando:

$ pip install psycopg2


Sigue los pasos:

  1. Instale las bibliotecas de Python en su sistema operativo:
    • python-dev
    • libpq-dev
  2. Ejecute el comando para instalar la biblioteca psycopg2 :
    • easy_install psycopg2

fuente: http://initd.org/psycopg/install/


Tuve este problema recientemente después de actualizar homebrew en OSX. psycopg2 ya estaba en la lista en mi virtualenv Acabo de reinstalar psycopg2 y funcionó de nuevo

pip install --forece-reinstall psycopg2


python26 ./manage.py runserver el mismo error, pero fue porque estaba usando python26 ./manage.py runserver cuando mi virtualenv solo tenía ejecutables python y python2.6 (por lo que se estaba utilizando el sistema python26 , que no tenía psycopg2 instalado)