Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django运行服务器错误(psycopg2)_Python_Django_Psycopg2 - Fatal编程技术网

Python Django运行服务器错误(psycopg2)

Python Django运行服务器错误(psycopg2),python,django,psycopg2,Python,Django,Psycopg2,我正在尝试这样做: python3.3 manage.py runserver 在我的Django项目文件夹中。我收到以下错误消息: File "/usr/local/lib/python3.3/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 25, in <module> raise ImproperlyConfigured("Error loading psycopg2 modu

我正在尝试这样做:

python3.3 manage.py runserver
在我的Django项目文件夹中。我收到以下错误消息:

  File "/usr/local/lib/python3.3/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 25, in <module>
    raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module  named 'psycopg2'
我已经用Python3.3下载了psycopg2。文件/usr/local/lib/python3.3/site-packages/django/db/backends/postgresql\u psycopg2/base.py也存在。然而,Python认为我没有名为psycopg2的模块。我试过这个:

$ python3.3
Python 3.3.3 (default, Feb  2 2014, 14:32:49) 
[GCC 4.6.3] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import psycopg2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'psycopg2'
>>> 
$python3.3
Python 3.3.3(默认,2014年2月2日,14:32:49)
[GCC 4.6.3]在linux上
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入psycopg2
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ImportError:没有名为“psycopg2”的模块
>>> 
我还按照建议更改了sys.path


我是新手,非常感谢您的帮助。

如果您试图使用默认用户,您将“postgres”拼写错误:


位于的文档建议使用repos安装该软件包。但是,请检查$PATH变量。

我自己解决了这个问题,但是我不确定为什么这是一个好的解决方案。对我来说,此命令未正确安装psycopg2:

sudo apt-get install python-psycopg2
我也无法通过在python3.3中导入模块从命令行获取版本。这就是我所做的:

sudo apt-get install libpq-dev

sudo easy_install psycopg2
现在看起来是这样的:

$ python3.3 manage.py runserver
Validating models...

0 errors found
February 03, 2014 - 08:54:13
Django version 1.6.1, using settings 'testprojekt.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

如果有人知道这解决了问题的原因,请随时发表评论。:)

我检查了本地安装的
psycopg2

apt-cache show python-psycopg2
包:python-psycopg2

优先级:可选

章节:python

安装尺寸:635

资料来源:psycopg2

版本:2.4.5-1

依赖于:python2.7、python(>=2.7.1-0ubuntu2)、python(=2.14)、libpq5(>=8.3~)

因此,
python-psycopg2
为您安装了与
python 3.x
不兼容的版本,但还有一个名为
python3-psycopg2
的包,当我检查它时,它看起来也是版本:2.4.5-1,但描述性文本告诉它与
python 3.2

apt-cache show python3-psycopg2
包装:python3-psycopg2

优先级:可选

版本:2.4.5-1

提供:python3.2-psycopg2

取决于:python3(>=3.2)、python3(=2.14)、libpq5(>=8.3~)


此外,包装尺寸也不同。可能您需要的是
python3-psycopg2
,它只是文档上的版本错误。

我建议您简化您的生活,使用virtualenv和pip安装库。为什么?因为在virtualenv中,可以避免误认为python可执行文件和库是为选定的python版本安装的

我个人为每个项目保留一个VirtualNV,所以我只有真正需要的库。我还知道,随着系统的更新,我不会得到一些不向后兼容的新版本库。但是,如果
pip升级
需要,我仍然可以更新库。我可以打包virtualenv并为我的项目制作需求列表。我不需要sudo来安装软件包,所以它也更安全

安装virtualenv

sudo apt-get install python-virtualenv
准备虚拟环境

sebastian@pc:~/test$ virtualenv -p python3.4 p34_virt_env
Running virtualenv with interpreter /usr/bin/python3.4
(...)
检查系统默认python解释器

sebastian@pc:~/test$ python --version
Python 2.7.6
激活虚拟环境(参见(p34虚拟环境)虚拟环境指示器?

再次检查python版本-它已更改

(p34_virt_env)sebastian@pc:~/test$ python --version
Python 3.4.0
没有图书馆,环境干净

(p34_virt_env)sebastian@pc:~/test$ pip list
pip (1.5.6)
setuptools (3.6)
现在,您可以pip安装所需的内容,如果必须安装
python3xxx
pythonxxx
库,则无需担心

(p34_virt_env)sebastian@pc:~/test$ pip install psycopg2

我曾面临此问题,并按照以下流程解决:

安装pip3:

sudo apt-get install python3-pip
安装virtualenv:

sudo pip3 install virtualenv
mkdir django
cd django
virtualenv -p /usr/bin/python3.4 venv
source venv/bin/activate
安装posgresql依赖项:

sudo apt-get install python3-dev libpq-dev
配置virtualenv:

sudo pip3 install virtualenv
mkdir django
cd django
virtualenv -p /usr/bin/python3.4 venv
source venv/bin/activate
安装django:

pip3 install django
安装psycopg2:

pip3 install psycopg2

您的
postgresql\u psycopg2
版本是什么?Python3.3支持有Psycopg2.5和更高版本。你可以从我尝试用python和命令行检查我的版本(我使用apt get安装它),但它只是告诉我没有名为psycopg2的模块。你可能用package manager安装了错误的
psycopg2
模块。。查看我的答案。是的,我使用的是默认用户。谢谢我已经更改了path变量,但不幸的是,这没有起到任何作用。然而,我设法用easy_install解决了这个问题。这不是原因,因为错误表明它无法导入相关模块。在您的情况下,Django将抛出基于数据库连接的错误,而不是
ImportError
,这就是我在之后对安装过程发表评论的原因。我没有说用户名修复是原因。很抱歉,缺少详细信息。谢谢,现在我明白为什么我的apt-get命令不起作用了。显然,easy_install会自动安装python3版本。谢谢可能
easy\u install
安装了最新版本,而linux软件包索引包含两个软件包,一个用于3.x,另一个用于2.x
pip3 install psycopg2