在将我的python应用成功地推到heroku之后,我发出了heroku ps:scale web=1
命令,并在heroku日志中遇到了以下错误;
2018-11-27T08:34:03.963364+00:00 app[web.1]: from flask_sqlalchemy import SQLAlchemy
2018-11-27T08:34:03.971768+00:00 app[web.1]: ImportError: cannot import name 'SQLAlchemy' from 'flask_sqlalchemy' (unknown location)
2018-11-27T08:34:03.972159+00:00 app[web.1]: [2018-11-27 08:34:03 +0000] [11] [INFO] Worker exiting (pid: 11)
2018-11-27T08:34:04.163955+00:00 app[web.1]: Traceback (most recent call last):
尽管使用以下步骤/命令为sqlalchemy设置了虚拟环境;
virtualenv sqlalchemy
source flask.ext.sqlalchemy/bin/activate
pip install sqlalchemy
deactivate
virtualenv flask_sqlalchemy
source flask_sqlalchemy/bin/activate
pip install flask-sqlalchemy
deactivate
在我的python代码中包含以下内容;
import flask_sqlalchemy
from flask_sqlalchemy import SQLAlchemy
和必需的Heroku文件;
Procfile的内容:
web: gunicorn project:app --log-file - --log-level debug
requirements.txt的内容;
Flask
gunicorn
runtime.txt的内容;
python-3.7.1
找不到SQLAlchemy。
请找到我的代码here
python应用程序在本地计算机上运行良好,但在Heroku上却运行不佳。是否有适当的方法安装SQLAlchemy以进行正确的导入?还是有另一种方法?
答案 0 :(得分:0)
从heroku documentation:
requirements.txt 文件一起列出了应用程序依赖项。部署应用程序后,Heroku会读取此文件并使用 pip install -r命令 安装相应的Python依赖项。
您的github存储库中有一个 requirements.txt ,但缺少诸如SQLAlchemy之类的依赖项,还有一些可能是您在本地安装的。
要保存在本地安装的所有软件包,请打开命令行并转到项目目录,然后(如果使用virtualenv,请先激活该env,而不要使用命令行进入项目目录)并键入:
点冻结> requirements.txt
这将保存您在本地安装的所有软件包。