2010-12-02 12 views
8

Siempre que intente ejecutar un comando como python manage.py syncdb, me sale el siguiente error:no puede conectarse a la base de datos Oracle con Django en Ubuntu

 
Traceback (most recent call last): 
    File "manage.py", line 11, in 
    execute_manager(settings) 
    File "/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/core/management/__init__.py", line 438, in execute_manager 
    utility.execute() 
    File "/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/core/management/__init__.py", line 379, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/core/management/__init__.py", line 261, in fetch_command 
    klass = load_command_class(app_name, subcommand) 
    File "/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/core/management/__init__.py", line 67, in load_command_class 
    module = import_module('%s.management.commands.%s' % (app_name, name)) 
    File "/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/south/management/commands/__init__.py", line 10, in 
    import django.template.loaders.app_directories 
    File "/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/template/loaders/app_directories.py", line 21, in 
    mod = import_module(app) 
    File "/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/contrib/admin/__init__.py", line 1, in 
    from django.contrib.admin.helpers import ACTION_CHECKBOX_NAME 
    File "/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/contrib/admin/helpers.py", line 1, in 
    from django import forms 
    File "/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/forms/__init__.py", line 17, in 
    from models import * 
    File "/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/forms/models.py", line 6, in 
    from django.db import connections 
    File "/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/db/__init__.py", line 77, in 
    connection = connections[DEFAULT_DB_ALIAS] 
    File "/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/db/utils.py", line 91, in __getitem__ 
    backend = load_backend(db['ENGINE']) 
    File "/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/db/utils.py", line 32, in load_backend 
    return import_module('.base', backend_name) 
    File "/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/db/backends/oracle/base.py", line 24, in 
    raise ImproperlyConfigured("Error loading cx_Oracle module: %s" % e) 
django.core.exceptions.ImproperlyConfigured: Error loading cx_Oracle module: libclntsh.so.11.1: cannot open shared object file: No such file or directory 

Es esto resoluble en Ubuntu?

+0

¿Su Ubuntu es una instalación de 64 bits? – Sathya

+0

Sí, estoy ejecutando Ubuntu en una máquina de 64 bits. – blackrobot

Respuesta

-1

tratar easy_install cx_Oracle, se compilará el módulo de la fuente cx_Oracle

0

Lo primero es lo primero - es esto realmente un problema Django, o simplemente un problema cx_Oracle? ¿Está cx_Oracle instalado correctamente? ¿Puede conectarse a su base de datos Oracle en una sesión de shell de Python?

import cx_Oracle 
conn = cx_Oracle.connect('/') # user/[email protected] 
cursor = conn.cursor() 

Si esto no genera una excepción, se ha conectado correctamente.

5

Necesita instalar tanto cx_Oracle como Oracle Client.

cx_Oracle puede ser found here.

Un cliente Oracle adecuado puede ser found here.

También deberá establecer la variable LD_LIBRARY_PATH antes de iniciar su aplicación. Esto generalmente se puede hacer (por ejemplo):

export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib 

Ahora debería poder pasar el mensaje de error cx_Oracle.

Cuestiones relacionadas