2014-02-08 4 views
14

플라스크 안내서를 통해 작업 중이며 명령 줄을 통해 데이터베이스를 작성하는 대신 스크립트를 실행하려고합니다. SQLAlchemy-migrate 패키지를 사용하지만 스크립트를 실행하려고하면 ImportError가 발생합니다.Flask - ImportError : migrate.versioning이라는 모듈이 없습니다.

이 단자 출력 :

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

이 애플리케이션은

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 스크립트 인 가상 환경으로 실행됩니다. 아마 모듈이 의미

sqlalchemy_migrate-0.7.2-py2.7.egg-정보를 어떤 도움이

답변

7

ImportError: No module named migrate.versioning 감사

: 이것은 내가 환경에 설치되어 있는지 그 관련 모듈입니다 설치되지 않았습니다. 올바른 가상 환경에 설치되었는지 확인하십시오. (해당 환경에서 activate 스크립트를 실행했습니다.) 선택한 Python 바이너리가 실제로 해당 환경을 사용하고 있습니다 (예 : Python2가 아닌 Python3을 사용하고 있습니다).

+1

예를 완전히 맞아 플라스크 - 마이그레이션 설치

sudo pip install flask-migrate 

플라스크-SQLAlchemy의

를 설치, 나는 모두 함께 가상 환경에 설치 모듈을 가지고 있었다. 도! –

1

flask/bin/pip install flask-sqlalchemy 나를 잘 작동하는 버전을 정의하지 않아도됩니다. 이전

ImportError: No module named migrate.versioning 

@BoppreH에서 말했듯

21
pip install sqlalchemy==0.7.9 

pip install sqlalchemy-migrate==0.7.2 

임의로 플라스크-whooshalchemy는 == 0.55a 문제

2

해결해야 모듈이 가상 환경 또는 시스템에 'migrate'라는 이름이 설치되어 있지 않습니다. 먼저 적절한 환경을 사용하고 스크립트를 사용하여 활성화되었는지 확인하십시오.

동일한 문제가 발생하여 올바른 환경이 설정되었습니다. 그러나 여전히 오류는 해결되지 않았습니다.

나를 위해 일한 것은 pip에서 패키지 sqlalchemy-migrate를 설치하는 것입니다. 나는 몇 가지 모호한 이유로 팝업 수있는 오류가, 내가 경험하는 또 다른를 추가 할 생각

pip install sqlalchemy-migrate 
0

: 나도 같은했다 내 환경을 활성화 한 후, 나는 그것을 설치하려면 다음 코드를 실행 정확한 오류가있는 동안 sqlalchemy-migrate가 올바르게 설치되어 있고 이라는 마이그레이션 스크립트 파일을 migrate.py으로 지정했기 때문에 작동하지 않았다면 마이그레이션 패키지와 충돌이 발생했습니다.
I "Import resolves to its containing file... This inspection detects names that should resolve but don't."
db_migrate.py
마이그레이션 스크립트 이름이 모든 것이 잘 작동 시작 : 는 사실 PyCharm이 메시지와 함께 나에게 경고했다. 동일한 설정으로 다른 프로젝트가 있었지만 migrate-sqlalchemy가 완벽하게 작동하는 문제의 원인을 이해할 수있었습니다. 유일한 차이는 실제로 파일 이름이었습니다 ... 이것은 언젠가 누군가를 도울 수 있기를 희망합니다 ...

0

동일한 문제가 있습니다 - "migrate.versioning이라는 모듈이 없습니다."모든 것이 우리가 말하는 것보다 훨씬 쉬우므로 명령을 실행해야합니다. db_create.py 또는 file : db_migrate.py PyCharm (터미널이 아닌)을 사용하는 경우. 그리고 당신은 예상 출력이됩니다

+0

안녕하세요 ALexandr. 답을 형식화 할 수 있으면 실행 명령, 파일 이름 및 예상 출력이 텍스트와 쉽게 구별 될 수 있습니다. – rafahoro

+0

고맙습니다. 끝났습니다. –

0

실행 :

"D로 저장 새로운 마이그레이션 : 1 : ... 내 경로는 ... \ 마이크로 블로그 \의 db_repositort/버전/001_migration.py 현재 데이터베이스 버전이"
easy_install Flask-SQLAlchemy