ModuleNotFoundError: No module named 'flask_migrate'

ModuleNotFoundError: No module named 'flask_migrate'

我是 python+flask 的新手,想用 flask 创建一个网站。 IDE 是 Visual studio 2017,我可以 运行 程序成功地使用 flasky.py 作为启动文件。但是在 CLI 中,我经常遇到这个错误。

(sms) C:\Document\Workspace\smsserver\smsserver>flasky.py
Traceback (most recent call last):
  File "C:\Document\Workspace\smsserver\smsserver\flasky.py", line 3, in <module>
    from flask_migrate import Migrate
ModuleNotFoundError: No module named 'flask_migrate'

代码是:

import os
from os import environ
from flask_migrate import Migrate
from app import create_app, db
import app.models

app = create_app(os.getenv('FLASK_CONFIG') or 'default')
migrate = Migrate(app, db)
....

以下是安装在 venv 中的模块。

(sms) C:\Document\Workspace\smsserver\smsserver>pip freeze
alembic==1.0.7
...
Flask==1.0.2
Flask-Bootstrap==3.3.7.1
Flask-Mail==0.9.1
Flask-Migrate==2.3.1
Flask-SQLAlchemy==2.3.2
....
SQLAlchemy==1.2.17
sqlalchemy-migrate==0.12.0
sqlparse==0.2.4
....

有什么我遗漏的吗?或者任何模块冲突?

您需要从 CLI 运行 您的脚本如下:

python flasky.py

当您 运行 flasky.py Windows 打开脚本时,注册了可执行文件以处理系统上的 .py. 扩展,这是您的系统范围 Python 解释器(即不是与您的虚拟环境关联的解释器)。

尝试重新安装 pip install Flask-Migrate。这对我有用

使用 python 虚拟环境时要小心:

python3 -m venv .venv

通过以下方式激活 private/local python 环境后:

source .venv/bin/activate

您的 PATH 可以正确更新,但 shell 散列 可能仍指向旧的 python / flask 位置!(模块不是安装)

因此,要解决此问题,您可能只需要在 shell 处键入以下命令重新哈希:

hash -r

它为我解决了同样的问题。

  1. pip install Flask-Script==2.0.5

  2. pip install Flask-Migrate==1.2.0

  3. 在您的根目录中创建 manage.py 文件并添加以下代码:

    from flask_script import Manager
    
    from <your app name> import app,db
    
    import os
    
    from config import Config
    
    from flask_migrate import Migrate,MigrateCommand
    
    from flask import Flask
    
    from flask_sqlalchemy import SQLAlchemy
    
    
    app.config.from_object(Config)
    
    migrate = Migrate(app, db)
    
    manager = Manager(app)
    
    manager.add_command('db', MigrateCommand)
    
    if __name__ == '__main__':
    
        manager.run()
    
  4. 应用以下命令:

    python manage.py db init 
    python manage.py db migrate
    python manage.py db upgrade
    

回溯(最近调用最后): 文件“manage.py”,第 4 行,位于 来自 flask_migrate 导入迁移,MigrateCommand 导入错误:无法从 'flask_migrate'

导入名称 'MigrateCommand'

使用pip install flask-migrate==2.1.1解决

sudo apt-get install python3-flask-migrate -y