我是第一次接触Flask和heroku,但我构建了一个简单的应用程序,并使用SQLite将其推送到heroku。在将应用程序迁移到远程mysql数据库后,我注意到无法让应用程序运行,因为我得到了以下错误:
ImportError: No module named MySQLdb在搜索之后,我发现这个错误是因为我需要安装pip install mysql-python
但是,我的requirements.txt文件已经包含mysql-python
$ pip freeze
Flask==0.10.1
Flask-Login==0.3.2
Flask-Migrate==1.6.0
Flask-SQLAlchemy==2.1
Flask-Script==2.0.5
Jinja2==2.8
Mako==1.0.3
MarkupSafe==0.23
MySQL-python==1.2.5
PyYAML==3.11
SQLAlchemy==1.0.9
Werkzeug==0.10.4
...当我在heroku上运行bash时,它显示我已经满足了要求:
~ $ heroku run bash
Running bash on blank-places-7646... up, run.9708
~ $ pip install mysql-python
Requirement already satisfied (use --upgrade to upgrade): mysql-python in ./.heroku/python/lib/python2.7/site-packages
~ $ pip freeze
alembic==0.8.3
Flask==0.10.1
Flask-Login==0.3.2
Flask-Migrate==1.6.0
Flask-Script==2.0.5
Flask-SQLAlchemy==2.1
itsdangerous==0.24
Jinja2==2.8
Mako==1.0.3
MarkupSafe==0.23
MySQL-python==1.2.5
pbr==1.8.1
python-editor==0.4
SQLAlchemy==1.0.9
stevedore==1.9.0
Werkzeug==0.10.4
~ $ pip install mysql-python --upgrade
Requirement already up-to-date: mysql-python in ./.heroku/python/lib/python2.7/site-packages我哪里错了?
发布于 2015-11-10 09:18:00
MySQL是Heroku上的一个插件,所以请尝试安装ClearDB。
heroku addons:add cleardb发布于 2018-05-16 08:57:07
对我有效的方法:我将MySQL连接移到一个单独的文件中,并在那里进行计算。将结果作为json返回到主路由文件。
我怀疑heroku并不是将所有的MySQL连接都放在你设置路由的同一个文件中。
https://stackoverflow.com/questions/33577689
复制相似问题