Flask应用程序:“ImportError:没有名为_psycopg的模块”

时间:2017-10-17 00:40:35

标签: python psycopg2

我最近使用SQLAlchemy和PostgreSQL将Flask应用程序部署到Amazon EC2实例。

这些是需求文件中列出的依赖项:

click==6.7
Flask==0.12.2
Flask-Login==0.4.0
Flask-SQLAlchemy==2.3.1
itsdangerous==0.24
Jinja2==2.9.6
MarkupSafe==1.0
psycopg2==2.7.3.1
SQLAlchemy==1.1.14
Werkzeug==0.12.2
WTForms==2.1

使用WSGI文件在Ubuntu 16.x和Apache 2.4上部署应用程序。该应用程序可以正常工作,但每当使用SQLAlchemy查询数据库时,我都会收到错误。

[Mon Oct 16 23:59:54.589811 2017] [wsgi:error] [pid 21547:tid 140180069140224] [remote 88.207.196.60:36925]     from psycopg2._psycopg import (                     # noqa
[Mon Oct 16 23:59:54.589813 2017] [wsgi:error] [pid 21547:tid 140180069140224] [remote 88.207.196.60:36925] ImportError: No module named _psycopg

每当我使用与WSGI部署相同的虚拟环境打开Python控制台时,我都可以导入模块...

python
from psycopg2 import _psycopg

什么可能导致这个问题?

亲切的问候, 乙

2 个答案:

答案 0 :(得分:0)

顺便说一下,它正在使用正确的Python版本。

虚拟机和Python路径在Apache中配置(请参阅下面的代码段)。此外,当我浏览Flask应用程序中不会对SQLAlchemy执行任何操作的页面/路径时,会按预期方式提供页面。

WSGIDaemonProcess myapp python-home=/usr/bin/python3 python-path=/home/ubuntu/envs/myapp/lib/python3.5/site-packages:/home/ubuntu/apps/myapp user=ubuntu group=ubuntu threads=5

答案 1 :(得分:0)

好的,所以我找到了解决这个时髦问题的方法。

我使用的是Python 3和虚拟环境。没问题。

错误是由于 mod_wsgi

的安装错误造成的

我通过以下方式安装了它:

sudo apt-get install libapache2-mod-wsgi

但这是错的!如果你想使用Python 3,你而不是必须安装特定于Python 3的mod_wsgi,如下所示:

sudo apt-get install libapache2-mod-wsgi-py3
相关问题