web-dev-qa-db-ja.com

ImportError:「flask_sqlalchemy」という名前のモジュールがありません。2つのバージョンのPythonがインストールされています

次のインポートを使用してファイルを実行しようとしました。

from flask_sqlalchemy import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker

次のエラーを受け取りました:

ImportError: No module named 'flask_sqlalchemy'

SQLAlchemyがインストールされます。それでも、それが使用されるディレクトリに再インストールしようとしました。私はこれを得た:

The directory '/Users/_/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with Sudo, you may want Sudo's -H flag.
The directory '/Users/_/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with Sudo, you may want Sudo's -H flag.
Requirement already satisfied: Flask-SQLAlchemy in /Library/Python/2.7/site-packages (2.3.2)
Requirement already satisfied: Flask>=0.10 in /Library/Python/2.7/site-packages (from Flask-SQLAlchemy) (1.0.2)
Requirement already satisfied: SQLAlchemy>=0.8.0 in /Library/Python/2.7/site-packages (from Flask-SQLAlchemy) (1.2.10)
Requirement already satisfied: Jinja2>=2.10 in /Library/Python/2.7/site-packages (from Flask>=0.10->Flask-SQLAlchemy) (2.10)
Requirement already satisfied: itsdangerous>=0.24 in /Library/Python/2.7/site-packages (from Flask>=0.10->Flask-SQLAlchemy) (0.24)
Requirement already satisfied: Werkzeug>=0.14 in /Library/Python/2.7/site-packages (from Flask>=0.10->Flask-SQLAlchemy) (0.14.1)
Requirement already satisfied: click>=5.1 in /Library/Python/2.7/site-packages (from Flask>=0.10->Flask-SQLAlchemy) (6.7)
Requirement already satisfied: MarkupSafe>=0.23 in /Library/Python/2.7/site-packages (from Jinja2>=2.10->Flask>=0.10->Flask-SQLAlchemy) (1.0)

ディレクトリを所有していない私についてのビットは正しくありません。このマシンにいるのは私だけです。私はすべてを所有しています。

とにかく、私は戻ってファイルを再実行し、同じエラーメッセージを受け取ります。したがって、インストールされていますが、インストールされていないか、少なくとも私は利用できません。

次のように読み取られたインポートステートメントの1つをコメントアウトしたときに表示された1つのエラーメッセージ:

File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sqlalchemy/engine/strategies.py

これを修正してSQLAlchemyを起動して実行する方法がわかりません。私はそれに1.5時間以上燃えました。リストされている最後のエラーは、2つのバージョンのpythonがそれと関係がある可能性があることを示唆しています。

救済策についてのあなたの考えをいただければ幸いです。

3
Ryan

最終的に、私は上記の質問を投稿してからこの問題を解決しました。

修正は、Anacondaを介してすべてのパッケージの更新とインストールを実行し、Spyderで作業を行うことでした。

学んだ教訓は単純でした。Pythonのすべての頼れる環境としてAnacondaの使用を開始すると、conda installまたはpipを介して行われたすべての更新が調整され、デフォルトでAnacondaによってシステムに配置されます。

0
Ryan

インストールしましたか flaskext.sqlalchemySQLAlchemyパッケージのみをインストールし、Flask拡張機能はインストールしていないようです。pip install Flask-SQLAlchemyを試してください

1
Wavesailor

最近この問題に遭遇しました。次の手順で問題が解決しました。

フラスコをインポートしていることを確認してください

from flask import Flask from flask_sqlalchemy import SQLAlchemy

Flask sqlalchemyチュートリアル https://flask-sqlalchemy.palletsprojects.com/en/2.x/quickstart/

また、コードを実行する前に、envが「アクティブ化」されていることを確認してください。

Python 2.7およびpip20.0.2を使用しています

0
RjCola28

Macを使用している場合は、pip install flask-sqlalchemyではなくpip3 install flask-sqlalchemyを試してください。

いくつかの警告はありますが、データベースに正常に接続してテーブルを作成することができました。 「FSADeprecationWarning:SQLALCHEMY_TRACK_MODIFICATIONSはかなりのオーバーヘッドを追加し、将来的にデフォルトで無効になります。この警告を抑制するには、TrueまたはFalseに設定してください。」

0
Serg

Pipとpythonバージョンの間に不一致があると思います。pip3の場合は、pipバージョンを確認してくださいpip --version
これを試すことができます

Sudo apt-get install python3-sqlalchemy

これはうまくいくはずです。

:〜$ python3

sqlalchemyをインポートする

0
Jadhav Gaurav

これは私にとってはうまくいきます。

  1. 仮想環境を使用する場合は、最初に、新しいパッケージをインストールするときに適切な環境にあるかどうかを確認する必要があります。 pycharmをIDEとして、condaを仮想環境マネージャーとして使用する場合、pycharmはターミナルでインタープリターの環境を自動的にアクティブ化しないため。例:(ベース)->(myenv)
  2. パッケージインストーラーとしてpip3を使用します。コンピュータのpython)のバージョンが異なるために、問題が発生することがありました。pip3 install flask_sqlalchemy

pipによってインストールされるパッケージはpython2.x/site-packagesの下にあり、pip3のパッケージはpython3.x/site-packagesの下にあります。

0
liangli

特定のプロジェクトを仮想環境にインストールしたが、venvインタープリターをプロジェクトのインタープリターとして割り当てるのを忘れた可能性があります。 pycharmを使用している場合は、[ファイル]> [設定]> [プロジェクトインタープリター]に移動し、ドロップダウンリストからプロジェクトに適したインタープリターを選択します。

このウィンドウには、その特定のインタープリターにインストールされているすべてのパッケージも表示されるため、SQLAlchemyが実際にインストールされていることを確認できます。

0
Imran Said

おそらくそれはピップパスの問題です。 conda virtual env(anacondaまたはminicondaを使用)を使用している場合は、Linuxでwhich pipwhich pythonをチェックし(pipとpython path)を見つけて、それらが整列していることを確認します) 。pipパスの問題を修正するか、pip install flask_sqlalchemyの代わりに

<ANACONDA or MINICONDA PATH>/envs/<ENV_NAME>/bin/pip install flask_sqlalchemy

パッケージを正しい場所にインストールするため。

0
Hossein