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.
ESTO ME HA AYUDADO:
Acabo de agregar la ruta bin de PostgreSQL a ENV y fue capaz de corregir el dll necesario: C: / Archivos de programa (x86) / PostgreSQL / 9.4 / bin
https://groups.google.com/forum/#!topic/robotframework-users/qLq9KvHe1wE
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:
- Instale las bibliotecas de Python en su sistema operativo:
-
python-dev
-
libpq-dev
-
- Ejecute el comando para instalar la biblioteca
psycopg2
:-
easy_install psycopg2
-
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)