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
它为我解决了同样的问题。
pip install Flask-Script==2.0.5
pip install Flask-Migrate==1.2.0
在您的根目录中创建 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()
应用以下命令:
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
我是 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
它为我解决了同样的问题。
pip install Flask-Script==2.0.5
pip install Flask-Migrate==1.2.0
在您的根目录中创建 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()
应用以下命令:
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