问题描述
我使用 Macports 安装了 Pythong2.6、psycopg2 和 pgAdmin3.我的 settings.py 是:
I have Pythong2.6, psycopg2 and pgAdmin3 installed using Macports. My settings.py is:
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 时遇到的错误是:
The error I get when I run python manage.py syncdb is:
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 吗?
Please note, I am a complete beginner in this stuff. I am originally a PHP-guy and trying out Python for a small personal project. Do I need to "turn on" Postgres?
另外,当我 sudo python manage.py runserver 8080我收到此错误:
Also, when I sudo python manage.py runserver 8080I get this error:
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
请指导我.任何回复将不胜感激.
Please guide me. Any reply will be appreciated.
谢谢,
温伯特!
推荐答案
您的 psycopg2
安装似乎有问题 - Python 没有找到它.这是 Python 安装问题,不是 Django 问题.
There seems to be a problem with your psycopg2
installation – Python does not find it. This is a Python installation problem, not a Django issue.
您可以尝试使用 Python 解释器手动加载它,看看它是否有效:
You can try to load it manually using the Python interpreter and see if it works:
$ python
>>> import psycopg2
如果你得到一个 ImportError
异常,你的安装是错误的.要获取 Python 查找模块的所有目录的列表,请使用 sys.path
:
If you get an ImportError
exception, your installation is erroneous. To get a list of all directories Python looks for modules, use sys.path
:
$ python
>>> import sys
>>> print sys.path
您还可以通过修改 sys.path
变量将自定义目录添加到 Python 的模块搜索路径.在相应的 import
语句之前的某处执行此操作:
You can also add custom directories to Python's module search path by modifying the sys.path
variable. Do this somewhere before the respective import
statement(s):
import sys
sys.path.append("my-path")
# ...
import psycopg2
这篇关于Django/Python初学者:执行python manage.py syncdb时出错-找不到psycopg2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!