1. ホーム
  2. python

[解決済み] ImportError: flask_sqlalchemy' という名前のモジュールがない/2バージョンのPythonがインストールされている

2022-02-25 15:05:07

質問

以下のようなインポートを持つファイルを実行してみました。

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)

私がディレクトリを所有していないというのは誤りです。このマシンでは私一人しかいません。私はすべてを所有しています。

とにかく、ファイルを再実行しようと戻ると、同じエラーメッセージが表示されます。つまり、インストールはされているが、インストールされていない、少なくとも私には利用できない、ということです。

import文の1つをコメントアウトしたときに表示されたエラーメッセージは、次のように読み取れます。

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

これを修正してSQLAlchemyを稼働させる方法が全く分からない。1.5時間以上費やしてしまいました。最後のエラーは、2つのバージョンの python があることが関係しているようです。

改善策についてご意見をお聞かせください。

解決方法は?

結局、この問題を解決したのは、上記の質問を投稿したずっと後のことでした。

修正方法は、すべてのパッケージのアップデートとインストールをAnacondaを通して実行し、Spyderで私の仕事をすることでした。

学んだことは単純です。一旦、Anaconda を Python に関するすべてのことを行う環境として使い始めると、すべてのアップデート(conda install や pip を介して行われる)は、デフォルトで Anaconda によってオーケストレーションされてシステムに配置されることになります。