Flask - ImportError:没有名为migrate.versioning的模块

Tak*_*son 14 python importerror flask flask-sqlalchemy flask-migrate

我正在研究一个烧瓶教程,我正在尝试运行一个创建数据库的脚本,而不是通过命令行来完成它.它使用SQLAlchemy-migrate包,但是当我尝试运行脚本时,它会产生ImportError.

这是终端输出:

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
Run Code Online (Sandbox Code Playgroud)

这是db_create.py脚本:

#!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))
Run Code Online (Sandbox Code Playgroud)

这是它引用的配置文件:

#!/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')
Run Code Online (Sandbox Code Playgroud)

此应用程序正在使用虚拟环境运行.这是我在环境中安装的与之相关的模块:

sqlalchemy_migrate-0.7.2-py2.7.egg-信息

任何帮助赞赏

Tra*_*mer 22

pip install sqlalchemy==0.7.9 
Run Code Online (Sandbox Code Playgroud)

pip install sqlalchemy-migrate==0.7.2 
Run Code Online (Sandbox Code Playgroud)

任选地,这个烧瓶 - whooshalchemy == 0.55a应该解决问题


Bop*_*reH 7

ImportError: No module named migrate.versioning可能意味着没有安装模块.确保它已安装在正确的虚拟环境中,它被激活(您activate在该环境中运行脚本),并且所选的Python二进制文件实际上正在利用该环境(即您使用的是Python2而不是Python3).