Django/Python Beginner: Error when executing pytho

2019-07-05 00:14发布

我有Pythong2.6,psycopg2和使用的MacPorts安装pgAdmin3。 我的settings.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的蟒蛇manage.py runserver命令8080我得到这个错误:

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

请指导我。 任何答复将不胜感激。

谢谢,

Wenbert!

Answer 1:

似乎是与你的问题psycopg2安装- Python没有找到它。 这是一个Python安装的问题,而不是一个Django的问题。

您可以尝试使用Python解释器手动加载它,看看它的工作原理:

$ python
>>> import psycopg2

如果你得到一个ImportError例外,您的安装是错误的。 为了让所有目录的Python查找模块,使用列表sys.path

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

您也可以通过修改添加自定义目录到Python的模块搜索路径sys.path变量。 做相应的在此之前的某个地方import声明(S):

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

# ...
import psycopg2


Answer 2:

如果你已经pip安装,只需安装运行缺少的扩展:

$ pip install psycopg2


Answer 3:

为了记录我有一个不同的原因了同样的错误:

我已经把

'ENGINE': 'django.db.backends.postgresql'

代替

'ENGINE': 'django.db.backends.postgresql_psycopg2'

settings.py



Answer 4:

按照步骤:

  1. 您的操作系统上安装Python库:
    • python-dev
    • libpq-dev
  2. 执行命令来安装psycopg2库:
    • easy_install psycopg2

来源: http://initd.org/psycopg/install/



Answer 5:

虽然你安装了它,Python可以明显找不到模块psycopg2。 这通常是由于Python的路径不是模块。 看看你是否能找到一个文件夹名为psycopg2 /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages 。 如果它不存在,没有MacPorts的告诉你,它把psycopg2? 如果你能找到它,只需将其移动到site-packages目录,你应该罚款。



Answer 6:

我意识到我没有安装psycopg2

aptitude install python-psycopg2

工作就像一个魅力



Answer 7:

对我来说,psycopg2确实安装,但不进着Django是跑的virtualenv。 这两个步骤固定它:

sudo apt-get build-dep python-psycopg2
sudo /opt/myenv/bin/pip install psycopg2


Answer 8:

是蒂姆的回答对我的作品没有前缀too.It作品“django.db.backends。” 也。 但要记住创建的数据库,您settings.py中提到的模式:

DATABASE_NAME = 'your_db_name' 

手动使用您的数据库客户端,所以当你运行“蟒蛇manage.py执行syncdb”你没有得到同样的问题。 我被卡住了,因为我没有手动创建它。 我得到了同样的问题,可能是因为我使用的扩建。



Answer 9:

我得到了同样的错误,但它是因为我用python26 ./manage.py runserver当我的virtualenv只有pythonpython2.6这样的可执行文件(系统python26正在使用,它不具有psycopg2安装



Answer 10:

蒂姆的回答为我工作了。 默认情况下,settings.py节目,如“postgresql_psycopg2”,“MySQL的”,等等,没有一个包名称的选项。 用前缀“django.db.backends。” 工作对我来说(对postgresql_psycopg2,至少)。



Answer 11:

我在Windows和安装了psycopg2,但64位版本。 所以我的修复是从下载32位的一个位置 ,然后在PowerShell和我的激活虚拟环境,我修复是:

pip uninstall psycopg2
easy_install C:\WHEREVER_I_DOWNLOADED_IT\psycopg2-2.6.1.win32-py3.4-pg9.4.4-release.exe

(在Windows的Python 3.4安装程序自动安装的easy_install和点子,和PIP是删除软件包,即使使用的easy_install原来安装的最简单的方法。)



Answer 12:

这有助于ME:

我只是说的PostgreSQL仓路径ENV和它能够精细所需的DLL:C:\ Program Files文件(x86)的\ PostgreSQL的\ 9.4 \ BIN

https://groups.google.com/forum/#!topic/robotframework-users/qLq9KvHe1wE



Answer 13:

同样在这里,但也许有人错过了当前的项目,所以我导航到主项目目录并安装它。

pip install psycopg2

和它的工作



Answer 14:

我最近在OSX更新后的自制这个问题。 psycopg2已经列在我的virtualenv。 我刚刚重新安装psycopg2并再次将其工作:

pip install --force-reinstall psycopg2



文章来源: Django/Python Beginner: Error when executing python manage.py syncdb - psycopg2 not found