Flask-ImportError: нет модуля с именем migrate.управление версиями


Я работаю через учебник flask и пытаюсь запустить скрипт, который создает базу данных, вместо того, чтобы делать это через командную строку. Он использует пакет 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

Это и есть 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))

Это конфигурационный файл, на который он ссылается:

#!/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.яйцо-информация

Любая помощь ценится

7 14

7 ответов:

ImportError: No module named migrate.versioning вероятно, это означает, что модуль не установлен. Убедитесь, что он установлен в правильной виртуальной среде, активирован (вы запустили скрипт activate в этой среде) и выбранный двоичный файл Python фактически использует эту среду (т. е. вы используете Python2, а не Python3).

pip install sqlalchemy==0.7.9 

И

pip install sqlalchemy-migrate==0.7.2 

И

Необязательно эта колба-whooshalchemy==0.55 a должна решить проблему

Как сказал @BoppreH ранее

ImportError: No module named migrate.versioning

Означает, что модуль с именем 'migrate' не установлен в вашей виртуальной среде или системе. Сначала убедитесь, что вы используете соответствующую среду и что она активирована с помощью скрипта activate.

У меня была та же проблема и была настроена правильная среда. Но все равно ошибка не была решена.

Что мне удалось, так это установить пакет sqlalchemy-migrate из pip. После активируя свою среду, я запустил следующий код для ее установки:

pip install sqlalchemy-migrate

flask/bin/pip install flask-sqlalchemy без определения версии все работало нормально для меня.

Я думаю, что эта ошибка может возникнуть по нескольким неясным причинам, я хотел бы добавить еще одну, которую я испытал: У меня была точно такая же ошибка при правильной установке sqlalchemy-migrate, и угадайте, что это не сработало только потому, что я назвал файл сценария миграции как migrate.py, это создало некоторый конфликт с пакетом migrate. На самом деле Пыхарм предупредил меня этим сообщением:
"Import resolves to its containing file... This inspection detects names that should resolve but don't."
я переименовал сценарий миграции в db_migrate.py и все началось работает нормально. Я мог понять, в чем была проблема, потому что у меня был другой проект с идентичной настройкой, но с migrate-sqlalchemy, работающей отлично, и единственным отличием было действительно это имя файла... Надеюсь, когда-нибудь это кому-нибудь поможет...

У меня была та же проблема- " нет модуля с именем migrate.управление версиями", и все гораздо проще, чем мы говорим, нужно выполнять команды " выполнить" файл: db_create.py или файл: db_migrate.py если вы используете PyCharm (не с терминала). И вы получите ожидаемый результат: "новая миграция сохранена как D:...есть мой path...\microblog\db_repositort/versions/001_migration.py Текущая версия базы данных: 1 "

Выполнить:

   easy_install Flask-SQLAlchemy

Установить Flask-SQLAlchemy

   sudo pip install flask-migrate

Для установки flask-migrate