2012-02-10 58 views
1

试图runserverdb['ENGINE'] = 'django.db.backends.psycopg2'我:的Django到PostgreSQL:错误加载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 

而且我不应该与Python> 2.6使用psycopg吧?

如何做这项工作的任何帮助?

回答

2

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

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

激活VIRTUALENV

source /some/dir/bin/activate 

准备Django和psycopg2和使用

pip install psycopg2 django # possibly other libraries 

任何其他库,然后移动到你的项目目录(这与manage.py),确保项目在PYTHONPATH内并再次尝试./manage.py runserver

+0

自从我写这个答案以来,我的知识增加了,现在我强烈建议熟悉virtualenvwrapper库:https://virtualenvwrapper.readthedocs.io/en/latest/。当您进行初始设置时,通过它管理virtualenvs会更容易。 – omikron 2016-09-07 08:51:36

1

您的安装已损坏。也许你运行一个32位的Python,但库是64位。

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

相关问题