【问题标题】:Django to PostgreSQL : Error loading psycopg2Django 到 PostgreSQL:加载 psycopg2 时出错
【发布时间】:2012-02-10 13:36:47
【问题描述】:

尝试runserverdb['ENGINE'] = 'django.db.backends.psycopg2' 我得到了:

[...]
File "/usr/local/lib/python2.6/dist-packages/django/db/backends/psycopg2/__init__.py", line 67, in <module>
from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
File "/usr/local/lib/python2.6/dist-packages/psycopg2-2.4.4-py2.6-linux-x86_64.egg/psycopg2/__init__.py", line 67, in <module>
from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: /usr/local/lib/python2.6/dist-packages/psycopg2-2.4.4-py2.6-linux-x86_64.egg/psycopg2/_psycopg.so: undefined symbol: Py_InitModule4_64

'ENGINE': 'django.db.backends.postgresql_psycopg2' 我得到了:

[...]
File "/usr/local/lib/python2.6/dist-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/local/lib/python2.6/dist-packages/django/db/backends/postgresql_psycopg2/base.py", line 24, in <module>
raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: /usr/local/lib/python2.6/dist-packages/psycopg2-2.4.4-py2.6-linux-x86_64.egg/psycopg2/_psycopg.so: undefined symbol: Py_InitModule4_64

而且我不应该将 psycopg 与 Python >2.6 一起使用,对吧?

对如何完成这项工作有任何帮助吗?

【问题讨论】:

    标签: django postgresql 64-bit debian psycopg2


    【解决方案1】:

    试着做一个干净的石板。准备分离的 virtualenv 目录。

    sudo apt-get install python-virtualenv  # if you don't have it yet 
    virtualenv /some/dir/
    

    激活虚拟环境

    source /some/dir/bin/activate
    

    准备 django 和 psycopg2 以及您使用的任何其他库

    pip install psycopg2 django # possibly other libraries
    

    然后移动到您的项目目录(使用 manage.py),确保项目在 PYTHONPATH 中并再次尝试 ./manage.py runserver

    【讨论】:

    • 自从我写这个答案后我的知识有所增加,现在我强烈建议熟悉 virtualenvwrapper 库:virtualenvwrapper.readthedocs.io/en/latest。进行初始设置时,通过它管理 virtualenvs 会更容易。
    【解决方案2】:

    您的安装已损坏。也许您运行的是 32 位 python,但该库是 64 位的。

    我用 Python2.7 运行 psycopg2 没有问题。

    【讨论】:

      猜你喜欢
      • 2021-04-30
      • 2021-06-18
      • 2016-09-06
      • 2015-03-06
      • 1970-01-01
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      相关资源
      最近更新 更多