我是新来的烧瓶和heroku,但我建立了一个简单的应用程序,并推到heroku使用SQLite。应用程序迁移到远程MySQL数据库后,我注意到,不能让应用程序运行,因为我收到以下错误:Heroku托管烧瓶应用程序与MySQL抛出错误
ImportError: No module named MySQLdb
周围搜索后我found,这个错误是因为我需要安装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
我在哪里出错了?
你是如何上运行的应用程序?看起来你并没有在你试图运行应用程序的Python上安装这个包。 heroku的默认数据库是PostgreSQL。并为我的[expirience](http://stackoverflow.com/questions/33180337/flask-sql-alchemy-mysql-multiple-foreign-keys-issues)和很多[人](http://grimoire.ca/mysql/choose-something-else)MySQL很糟糕。试试 – CESCO
Heroku自动识别应用程序(https://devcenter.heroku.com/articles/getting-started-with-python-o),但是不应该能够使用我想要的任何分贝? – kmomo
我认为Postgres开箱即可。要使用MySQL,你需要一个可能付费的插件插件。我不知道你需要检查它。运行'heroku config'来检查你的服务器上是否还没有运行Postgres数据库。我基本上使用JAVA与heroku。至少这在Java世界中是如此。 – CESCO