我有Python .6、使用Macports安装psycopg2和pgAdmin3.我的设置.py是:

DATABASE_ENGINE = 'postgresql_psycopg2'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = 'mysite'             # Or path to database file if using sqlite3.
DATABASE_USER = 'postgres'             # Not used with sqlite3.
DATABASE_PASSWORD = ''         # Not used with sqlite3.
DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.

当我运行python manage.py syncdb时,我得到的错误是:

Traceback (most recent call last):
  File "manage.py", line 11, in <module>
    execute_manager(settings)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/__init__.py", line 362, in execute_manager
    utility.execute()
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/__init__.py", line 303, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 195, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 221, in execute
    self.validate()
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 249, in validate
    num_errors = get_validation_errors(s, app)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/validation.py", line 22, in get_validation_errors
    from django.db import models, connection
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 41, in <module>
    backend = load_backend(settings.DATABASE_ENGINE)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 17, in load_backend
    return import_module('.base', 'django.db.backends.%s' % backend_name)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 22, in <module>
    raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2

请注意,我在这方面完全是个初学者.我最初是一个PHP爱好者,正在为一个小的个人项目试用Python.我需要"打开"Postgres吗?

另外,当我sudo python manage.py runser8080时 我得到这个错误:

Validating models...
Unhandled exception in thread started by <function inner_run at 0x1242670>
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/commands/runserver.py", line 48, in inner_run
    self.validate(display_num_errors=True)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 249, in validate
    num_errors = get_validation_errors(s, app)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/validation.py", line 22, in get_validation_errors
    from django.db import models, connection
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 41, in <module>
    backend = load_backend(settings.DATABASE_ENGINE)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 17, in load_backend
    return import_module('.base', 'django.db.backends.%s' % backend_name)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 22, in <module>
    raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2

请给我带路.任何回复都将不胜感激.

谢谢,

温伯特!

推荐答案

您的psycopg2安装似乎有问题-Python找不到它.这是一个Python安装问题,而不是Django问题.

您可以try 使用Python解释器手动加载它,看看它是否有效:

$ python
>>> import psycopg2

如果您收到ImportError异常,则说明您的安装是错误的.要获得Python查找模块的所有目录的列表,请使用sys.path:

$ python
>>> import sys
>>> print sys.path

您还可以通过修改sys.path变量将自定义目录添加到Python的模块搜索路径.在相应的import条语句之前的某个位置执行此操作:

import sys
sys.path.append("my-path")

# ...
import psycopg2

Django相关问答推荐

如何在Django模型mixin字段定义中引用模型名称?

Django没有';t显示黄页

如何访问 django 模板中的字典值?

DJANGO 获得模型中发现的第一、第二和第三大价值

过滤查询以获取两个朋友之间的聊天消息?

从一个组中获取所有用户 - Django

断开连接不会发生

Django中基于令牌的身份验证

如何从 django 自定义中间件类返回 rest_framework.response 对象?

如何在Django中获取一个组的所有用户?

使用 lambda 作为属性的默认值时,Django 1.7.1 Makemigrations 失败

对 django 的 Http Delete 请求返回 301

django:manytomanyfield 和 through 如何出现在 admin 中?

Django 国际化语言代码

django 在 unittest 测试中设置环境变量

Django unique_together 与可为空的 ForeignKey

基于 User-Agent 更改 Django 模板

如何动态访问 Django 模型字段详细名称?

AWS Cognito 作为网站的 Django 身份验证后端

Django 中的 Python 日志(log)记录