【问题标题】:Cannot connect to Oracle database with Django on Ubuntu无法在 Ubuntu 上使用 Django 连接到 Oracle 数据库
【发布时间】:2011-05-19 06:43:58
【问题描述】:

每当我尝试运行类似python manage.py syncdb 的命令时,都会收到以下错误:

回溯(最近一次通话最后): 文件“manage.py”,第 11 行,在 执行管理器(设置) 文件“/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/core/management/__init__.py”,第 438 行,在 execute_manager 实用程序.execute() 文件“/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/core/management/__init__.py”,第379行,在执行 self.fetch_command(子命令).run_from_argv(self.argv) 文件“/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/core/management/__init__.py”,第 261 行,在 fetch_command klass = load_command_class(app_name, subcommand) 文件“/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/core/management/__init__.py”,第 67 行,在 load_command_class module = import_module('%s.management.commands.%s' % (app_name, name)) 文件“/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/utils/importlib.py”,第 35 行,在 import_module __import__(名称) 文件“/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/south/management/commands/__init__.py”,第 10 行,在 导入 django.template.loaders.app_directories 文件“/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/template/loaders/app_directories.py”,第 21 行,在 mod = import_module(应用程序) 文件“/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/utils/importlib.py”,第 35 行,在 import_module __import__(名称) 文件“/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/contrib/admin/__init__.py”,第 1 行,在 从 django.contrib.admin.helpers 导入 ACTION_CHECKBOX_NAME 文件“/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/contrib/admin/helpers.py”,第 1 行,在 从 django 导入表格 文件“/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/forms/__init__.py”,第 17 行,在 从模型导入 * 文件“/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/forms/models.py”,第 6 行,在 从 django.db 导入连接 文件“/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/db/__init__.py”,第 77 行,在 连接 = 连接[DEFAULT_DB_ALIAS] 文件“/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/db/utils.py”,第 91 行,在 __getitem__ 后端 = load_backend(db['ENGINE']) 文件“/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/db/utils.py”,第 32 行,在 load_backend return import_module('.base', backend_name) 文件“/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/utils/importlib.py”,第 35 行,在 import_module __import__(名称) 文件“/home/damon/Workspace/django-projects/acm-cie/env/lib/python2.6/site-packages/django/db/backends/oracle/base.py”,第 24 行,在 raise ImproperlyConfigured("加载 cx_Oracle 模块时出错:%s" % e) django.core.exceptions.ImproperlyConfigured:加载 cx_Oracle 模块时出错:libclntsh.so.11.1:无法打开共享对象文件:没有这样的文件或目录

这在 Ubuntu 上可以解决吗?

【问题讨论】:

  • 你的 Ubuntu 是 64 位安装的吗?
  • 是的,我在 64 位机器上运行 Ubuntu。

标签: django oracle ubuntu


【解决方案1】:

您需要同时安装 cx_Oracle 和 Oracle 客户端。

cx_Oracle 可以是found here

适当的 Oracle 客户端可以是 found here

您还需要在启动应用程序之前设置 LD_LIBRARY_PATH 变量。这通常可以做到(例如):

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

现在您应该能够克服 cx_Oracle 错误消息了。

【讨论】:

    【解决方案2】:

    首先,这实际上是一个 Django 问题,还是只是一个 cx_Oracle 问题? cx_Oracle 是否安装正确?您可以在 Python shell 会话中连接到您的 Oracle 数据库吗?

    import cx_Oracle
    conn = cx_Oracle.connect('/') # user/password@dsn
    cursor = conn.cursor()
    

    如果这没有引发异常,则您已成功连接。

    【讨论】:

      【解决方案3】:

      尝试easy_install cx_Oracle,它将从源代码编译cx_Oracle模块

      【讨论】:

        猜你喜欢
        • 2019-08-25
        • 2011-02-09
        • 1970-01-01
        • 2015-10-28
        • 2019-10-18
        • 2020-01-02
        • 2019-05-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多