Flask - ImportError: No module named migrate.versioning
我正在完成一个flask教程,并试图运行一个创建数据库的脚本,而不是通过命令行来完成。它使用sqlAlchemy migrate包,但是当我尝试运行脚本时,它会给出一个importError。
这是终端输出:
1 2 3 4 5 | Sean:app seanpatterson$ python ./db_create.py Traceback (most recent call last): File"./db_create.py", line 2, in <module> from migrate.versioning import api ImportError: No module named migrate.versioning |
这是db_create.py脚本:
1 2 3 4 5 6 7 8 9 10 11 12 | #!flask/bin/python from migrate.versioning import api from config import SQLALCHEMY_DATABASE_URI from config import SQLALCHEMY_MIGRATE_REPO from app import db import os.path db.create_all() if not os.path.exists(SQLALCHEMY_MIGRATE_REPO): api.create(SQLALCHEMY_MIGRATE_REPO, 'database repository') api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO) else: api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO, api.version(SQLALCHEMY_MIGRATE_REPO)) |
这是它引用的配置文件:
1 2 3 4 5 6 | #!/usr/bin/env python import os basedir = os.path.abspath(os.path.dirname(__file__)) SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'app.db') SQLALCHEMY_MIGRATE_REPO = os.path.join(basedir, 'db_repository') |
此应用程序正在虚拟环境中运行。这是我在环境中安装的与之相关的模块:
sqlAlchemy_migrate-0.7.2-py2.7.egg-info
谢谢你的帮助
1 | pip install sqlalchemy==0.7.9 |
和
1 | pip install sqlalchemy-migrate==0.7.2 |
和
或者,该烧瓶的whooshcalchemy==0.55A可以解决问题。
正如前面@boppreh所说
1 | ImportError: No module named migrate.versioning |
表示未在虚拟环境或系统中安装名为"migrate"的模块。首先,确保您使用的是正确的环境,并且使用激活脚本激活它。
我也遇到了同样的问题,并且建立了正确的环境。但这个错误仍然没有解决。
对我有用的是从PIP安装sqlAlchemy迁移包。激活环境后,我运行了以下代码来安装它:
1 | pip install sqlalchemy-migrate |
没有定义版本的
运行:
1 | easy_install Flask-SQLAlchemy |
安装烧瓶
1 | sudo pip install flask-migrate |
安装烧瓶迁移
我也有同样的问题——"没有一个名为migrate.versioning的模块",而且一切都比我们所说的容易得多,您需要执行"run"命令。文件:db_create.py或文件:db_migrate.py如果您使用pycharm(而不是从终端)。您将得到预期的输出:"新迁移另存为D:…有我的路径…"microblogdb_repositor/versions/001_migration.py当前数据库版本:1"
我认为这个错误可能是由于几个不明确的原因而出现的,我想添加另一个我经历过的原因:我在正确安装sqlacalchemy migrate时也遇到了同样的错误,猜猜怎么着,这并不是因为我将迁移脚本文件命名为
我将迁移脚本重命名为