web-dev-qa-db-ja.com

Flask-ImportError:migrate.versioningという名前のモジュールがありません

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.Egg-info

助けていただければ幸いです

14

ImportError: No module named migrate.versioningおそらくモジュールがインストールされていないことを意味します。正しい仮想環境にインストールされ、アクティブ化され(その環境でactivateスクリプトを実行した)、選択されたPythonバイナリが実際にそれを利用している)ことを確認してください環境(つまり、Python3ではなくPython2を使用している)。

7
BoppreH
pip install sqlalchemy==0.7.9 

そして

pip install sqlalchemy-migrate==0.7.2 

そして

オプションで、このフラスコ-whooshalchemy == 0.55aで問題を解決できます

22
Transformer

先に@BoppreHが言ったように

ImportError: No module named migrate.versioning

'migrate'という名前のモジュールが仮想環境またはシステムにインストールされていないことを意味します。まず、適切な環境を使用していることと、activateスクリプトを使用してアクティブ化されていることを確認してください。

同じ問題が発生し、正しい環境が設定されました。しかし、それでもエラーは解決されませんでした。

私のために働いたのは、pipからsqlalchemy-migrateパッケージをインストールすることでした。私の環境をアクティブ化した後、次のコードを実行してインストールしました:

pip install sqlalchemy-migrate
2
97amarnathk

flask/bin/pip install flask-sqlalchemyバージョンを定義しなくても問題なく動作しました。

1
Sudeep Acharya

実行:

   easy_install Flask-SQLAlchemy

flaskをインストールするには-SQLAlchemy

   Sudo pip install flask-migrate

フラスコをインストールするには-移行

1
li bing zhao

このエラーはいくつかのあいまいな理由でポップアップする可能性があると思います。私が経験した別のエラーを追加したいと思います。sqlalchemy-migrateを正しくインストールしているときに同じエラーが発生しましたが、推測すると、- named移行スクリプトファイルをmigrate.py、これにより、移行パッケージとの競合が発生しました。実際、PyCharmはこのメッセージで私に警告しました:
"Import resolves to its containing file... This inspection detects names that should resolve but don't."
I 名前が変更されました移行スクリプトをdb_migrate.pyそしてすべてが正常に機能し始めました。同じ設定でmigrate-sqlalchemyが完全に機能している別のプロジェクトがあり、唯一の違いは実際にそのファイル名でした。これがいつか誰かに役立つことを願っています...

0
steel00

私は同じ問題を抱えていました-「migrate.versioningという名前のモジュールはありません」、そしてすべてが私たちが話しているよりもはるかに簡単です、PyCharmを使用している場合はコマンド「run」ファイル:db_create.pyまたはファイル:db_migrate.pyを実行する必要があります(ターミナルからではありません)。そして、期待される出力が得られます:「Dとして保存された新しい移行:...私のパスがあります...\microblog\db_repositort/versions/001_migration.py現在のデータベースバージョン:1」

0