无法将Django应用程序连接到外部PostgreSQL数据库

时间:2011-05-13 01:25:54

标签: python django macos postgresql ubuntu

简短描述
我在尝试将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) Ran 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的最佳方法是什么。

更新5-13-2011:9:20 AM
在与同事交谈后,我相信this所以问题解决了我的大部分问题

3 个答案:

答案 0 :(得分:1)

我不是Python人,但你确实需要安装PostgreSQL库,因为PostgreSQL(psycopg)的Python接口只是PostgreSQL C库之上的Python层。因此,没有PostgreSQL开发库意味着没有任何内容可以用Python包装,也无法从Python中与PostgreSQL交流。

答案 1 :(得分:0)

您需要将pg_config放入路径,首先在您的计算机上找到此文件,然后运行类似于:

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

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

    sudo port install postgresql90

答案 2 :(得分:0)

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

@mu太短了:谢谢你的帮助。