14

I'm working through a flask tutorial and am trying to run a script that creates a database instead of doing it through the command line. It uses the SQLAlchemy-migrate package, but when I try to run the script, it gives an ImportError.

This is the terminal output:

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

This is the db_create.py script:

#!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))

This is the config file it references:

#!/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')

This application is being run with a virtual environment. This are the module that relates to it that I have installed in the environment:

sqlalchemy_migrate-0.7.2-py2.7.egg-info

Any help appreciated

4

7 回答 7

22
pip install sqlalchemy==0.7.9 

pip install sqlalchemy-migrate==0.7.2 

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

于 2014-06-10T22:40:06.417 回答
7

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

于 2014-02-08T15:13:39.457 回答
3

正如@BoppreH 之前所说

ImportError: No module named migrate.versioning

意味着名为“迁移”的模块未安装在您的虚拟环境或系统中。首先确保您使用的是正确的环境并且它是使用激活脚本激活的。

我遇到了同样的问题,并且设置了正确的环境。但是错误仍然没有解决。

对我有用的是从 pip安装sqlalchemy-migrate包。激活我的环境后,我运行以下代码来安装它:

pip install sqlalchemy-migrate
于 2017-05-17T08:26:44.957 回答
1

flask/bin/pip install flask-sqlalchemy没有定义版本对我来说很好。

于 2014-04-27T11:36:06.173 回答
1

跑 :

   easy_install Flask-SQLAlchemy

安装 Flask-SQLAlchemy

   sudo pip install flask-migrate

安装烧瓶迁移

于 2018-03-08T04:45:56.307 回答
0

我认为这个错误可能由于几个不明原因而弹出,我想添加另一个我经历过的错误:我在正确安装 sqlalchemy-migrate 时遇到了同样的错误,你猜怎么着,只是因为我命名了迁移脚本文件为migrate.py,这与迁移包产生了一些冲突。事实上,PyCharm 用这条消息警告我:我将迁移脚本重命名为,一切都开始正常工作。我可以理解问题是什么,因为我有另一个项目具有相同的设置,但 migrate-sqlalchemy 运行良好,唯一的区别确实是那个文件名......希望有一天这可能对某人有所帮助......
"Import resolves to its containing file... This inspection detects names that should resolve but don't."
db_migrate.py

于 2017-10-30T14:20:51.197 回答
0

我有同样的问题 - “没有名为 migrate.versioning 的模块”,一切都比我们谈论的要容易得多,如果你使用 PyCharm,你需要执行命令“运行”文件:db_create.py 或文件:db_migrate.py (不是从终端)。您将得到预期的输出:“新迁移保存为 D:...这是我的路径...\microblog\db_repositort/versions/001_migration.py 当前数据库版本:1”

于 2017-11-08T15:55:13.787 回答