【问题标题】:Unable to connect Django app to an external PostgreSQL database无法将 Django 应用程序连接到外部 PostgreSQL 数据库
【发布时间】:2011-08-24 14:05:42
【问题描述】:

简短说明
我在尝试将 Django 应用程序(当前设置为 SQLite3)连接到我的 Ubuntu 服务器上新创建的 PostgreSQL 时遇到了许多问题。

问题
任何人都可以分享他们在这方面的成功吗?是否有一个很好的分步教程来做到这一点?或者至少对如何调试有用的指针?

到目前为止的步骤(背景信息)
1) 我已经按照 this 教程在我的 Ubuntu 服务器上安装了 PostgreSQL。请注意,这会产生零错误。
2)我配置了我的 Django settings.py,如下所示

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql', 
    'NAME': 'mytestdb',                   
    'USER': 'mux_user',                    
    'PASSWORD': 'mux',                  
    'HOST': '192.168.1.111',                      
    'PORT': '',                  
    }
}

3) 运行 Django 的“syncdb”。这产生了以下错误。

django.core.exceptions.ImproperlyConfigured:加载 psycopg 模块时出错:没有名为 psycopg 的模块

4) 尝试使用 PIP、easy_install 和 setup.py 安装 psycopg。所有人都遇到了无法找到 pg_config 的相同失败。

5) Google 告诉我,我需要安装 libpq-dev 和 python-dev 才能编译 psycopg 包。这是我对理解自己在做什么失去信心的地方。我知道这 2 个包是为了让我编译 python 源代码,但是这样做真的有必要吗?

系统信息
客户:
操作系统:OS X Snow Leopard-10.6.6
Django:版本 1.2.5
Python:2.7(运行 virtualenv)

即将成为客户
操作系统:Windows XP / 7
运行上述python环境的捆绑可执行文件

服务器:
操作系统:Ubuntu 10.10(服务器,无 gui)
PostgreSQL:8.4(这是 apt-get install 下载的)

更新
我确实在documentation 中找到了关于需要安装 psycopg 的内容。我想问题从我真的需要这个转移到在我的客户端上安装 psycopg 的最佳方法是什么。

2011 年 5 月 13 日更新:上午 9:20
与同事交谈后,我相信this SO question 解决了我的大部分问题

【问题讨论】:

    标签: python django macos postgresql ubuntu


    【解决方案1】:

    我不是 Python 人,但您确实需要安装 PostgreSQL 库,因为 PostgreSQL 的 Python 接口 (psycopg) 只是 PostgreSQL C 库之上的一个 Python 层。因此,没有 PostgreSQL 开发库意味着没有任何东西可以用 Python 包装,也无法从 Python 与 PostgreSQL 对话。

    【讨论】:

    • 这正是我开始安装 psycopg 的原因。但是,我不知道在使用 Django 时是否需要这样做。从我的错误来看,我会说是的,但是我在 Django 文档中找不到关于需要这个模块的任何地方。感谢您的快速回答!
    • @Adam:我认为 Django 本身不需要 psycopg 或其任何支持库,但您的应用程序需要与 PostgreSQL 通信,因此您的应用程序需要 psycopg 和朋友。
    • @Adam:如果您使用 Homebrew,我认为 brew install postgresql 应该可以为您提供所需的一切。这将为您提供服务器以及库,但这应该没什么大不了的,因为除非您要求,否则服务器不会运行。
    • @mu:这正是我所做的。但是,现在我在用自制软件安装 Postgres 时遇到了麻烦:|我就是赢不了。
    • @mu:我会研究灰姑娘的。谢谢你的提示。关于“安装 PostreSQL 时遇到问题”,一旦我有更聪明的事情要说,我宁愿提出一个新问题,而不是“帮助!” :)
    【解决方案2】:

    你需要把你的 pg_config 放到你的路径中,首先在你的机器上找到这个文件,然后运行类似的东西:

        export PATH=$PATH:/opt/local/lib/postgresql90/bin
        pip install psycopg2
    

    如果您的客户端计算机上没有安装 postgres,那么您应该可以使用 macports 安装:

        sudo port install postgresql90
    

    【讨论】:

    • 正如我在问题中指出的那样,我的机器上没有 pg_config。我现在还不能查到这个,所以你知道我能不能用自制软件安装我需要的东西吗?
    【解决方案3】:

    我遇到的问题主要集中在使用 32 位安装的 Python(雪豹上的 wxPython 2.8 需要)。请在SO Question 上查看我的回答。

    @mu 太短:感谢您的帮助。

    【讨论】:

      猜你喜欢
      • 2022-12-03
      • 2014-06-25
      • 2022-01-26
      • 2019-02-05
      • 1970-01-01
      • 2016-08-18
      • 2017-11-24
      • 2013-11-15
      • 2012-09-30
      相关资源
      最近更新 更多