我是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)
....
这里是虚拟机中安装的模块。
(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
....
有什么我想念的吗?还是任何模块冲突?
答案 0 :(得分:0)
在CLI中,您需要按以下方式运行脚本:
python flasky.py
当您刚运行flasky.py
时,Windows将打开脚本,并注册该可执行文件以处理系统上的.py.
扩展名,该扩展名是系统范围的Python解释器(即,与虚拟机关联的解释器)环境)。
答案 1 :(得分:0)
尝试重新安装pip安装Flask-Migrate。这对我有用
答案 2 :(得分:0)
在使用 python 虚拟环境时要小心:
python3 -m venv .venv
通过以下方式激活私有/本地python环境后:
source .venv/bin/activate
您的 PATH 可以正确更新,但 shell 哈希可能仍指向旧的 python/flask 位置!(未安装模块的位置)
因此,要解决此问题,您可能只需要通过键入以下命令在 shell 中重新散列:
hash -r
它为我解决了同样的问题。
答案 3 :(得分:0)
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