【问题标题】:ModuleNotFoundError: No module named 'flask_migrate'ModuleNotFoundError:没有名为“flask_migrate”的模块
【发布时间】:2019-02-14 15:42:58
【问题描述】:

我是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
....

有什么我错过的吗?或者任何模块冲突?

【问题讨论】:

    标签: python flask flask-migrate


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您需要从 CLI 运行脚本,如下所示:

      python flasky.py
      

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

      【讨论】:

      • 它有效。谢谢!我误解了虚拟环境和 Python 解释器。
      【解决方案3】:
      sudo apt-get install python3-flask-migrate -y 
      

      【讨论】:

        【解决方案4】:

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

        python3 -m venv .venv
        

        通过以下方式激活私有/本地python环境后:

        source .venv/bin/activate
        

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

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

        hash -r
        

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

        【讨论】:

          【解决方案5】:
          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
            

          【讨论】:

            【解决方案6】:

            Traceback(最近一次调用最后一次): 文件“manage.py”,第 4 行,在 从 flask_migrate 导入迁移,MigrateCommand ImportError:无法从“flask_migrate”导入名称“MigrateCommand”

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

            【讨论】:

              猜你喜欢
              • 2019-03-28
              • 2022-01-07
              • 2017-12-14
              • 2020-12-10
              • 2021-09-02
              • 2020-10-10
              • 2022-01-06
              • 2021-09-10
              相关资源
              最近更新 更多