【问题标题】:ImportError: cannot import name 'SQLAlchemy' from 'flask_sqlalchemy' (unknown location)ImportError:无法从“flask_sqlalchemy”(未知位置)导入名称“SQLAlchemy”
【发布时间】:2018-11-27 08:47:09
【问题描述】:

在成功将我的 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 以正确导入?还是有其他方法可以解决这个问题?

【问题讨论】:

  • 需要在requirement.txt文件中添加所有需要的包。
  • 请在问题本身中包含相关代码,或者换句话说生成一个minimal reproducible example。链接可能会腐烂,问题应该是自包含的。

标签: python heroku sqlalchemy flask-sqlalchemy


【解决方案1】:

来自herokudocumentation

requirements.txt 文件将应用依赖项一起列出。部署应用程序时,Heroku 会读取此文件并使用 pip install -r 命令安装适当的 Python 依赖项。

您的 github 存储库有一个 requirements.txt,但它缺少诸如 SQLAlchemy 之类的依赖项,并且可能您在本地安装了其他一些依赖项。

要保存您在本地安装的所有包,请打开命令行并转到您的项目目录(如果您使用的是 virtualenv,请先激活该 env,然后使用命令行转到项目目录)并输入:

pip freeze > requirements.txt

这将保存您在本地安装的所有软件包。

【讨论】:

  • 谢谢丁科!终于让它正常安装依赖项了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-06
  • 2021-03-21
  • 2020-09-08
  • 2021-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多