Flask-ImportError: нет модуля с именем 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
Это 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.egg-info
любая помощь ценится
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" не установлен в вашей виртуальной среде или вашей системе. Сначала убедитесь, что вы используете правильную среду и что она активируется с помощью активировать сценарий.
у меня была та же проблема и была настроена правильная среда. Но все равно ошибка не была решена.
то, что работало для меня, было установкой sqlalchemy-migrate пакет от типуна. После активация в моей среде я запустил следующий код для его установки:
pip install sqlalchemy-migrate
Я думаю, что эта ошибка может появиться по нескольким неясным причинам, я хотел бы добавить еще один, который я испытал:
У меня была такая же точная ошибка при правильной установке sqlalchemy-migrate, и угадайте, что это не сработало только потому, что у меня было имени файл сценария миграции как migrate.py
, Это создало некоторый конфликт с пакетом миграции.
На самом деле PyCharm предупредил меня этим сообщением: "Import resolves to its containing file... This inspection detects names that should resolve but don't."
Я переименован скрипт миграции as db_migrate.py
и все начало работать нормально.
Я мог понять, в чем была проблема, потому что у меня был другой проект с идентичной настройкой, но с migrate-sqlalchemy, работающий отлично, и единственной разницей было действительно это имя файла...
Надеюсь, однажды это кому-нибудь поможет...
У меня была та же проблема - "нет модуля с именем мигрировать.управление версиями", и все намного проще, чем мы говорим, нужно выполнять команды " выполнить" файл: db_create.py или файл: db_migrate.py если вы используете PyCharm (не с терминала). И у вас будет ожидаемый результат: "новая миграция сохранена как D:...вот моя path...\microblog\db_repositort/versions/001_migration.py Текущая версия базы данных: 1"
run:
easy_install Flask-SQLAlchemy
установить Flask-SQLAlchemy
sudo pip install flask-migrate
для установки flask-migrate