web-dev-qa-db-ja.com

ImportError:sqlalchemyというモジュールはありません

pythonにモジュールが見つかりませんが、easy_installには既にインストールされていると表示されます。この問題を解決する方法はありますか?

$ python -c "from flaskext.sqlalchemy import SQLAlchemy"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named sqlalchemy


$ python -V
Python 2.7


$ Sudo easy_install sqlalchemy
Searching for sqlalchemy
Best match: SQLAlchemy 0.7.7
Adding SQLAlchemy 0.7.7 to easy-install.pth file

Using /usr/lib/python2.7/site-packages
Processing dependencies for sqlalchemy
Finished processing dependencies for sqlalchemy

$ Sudo pip install SQLAlchemy --upgrade Requirement already-to-date:SQLAlchemy in /usr/lib/python2.7/site-packages Cleaning up ...

Pipはインストールされていると言っていますが、sys.pathの出力には見つかりません。

$ Sudo python -c "import sys;print sys.path" ['',
'/usr/lib/python2.7/site-packages/Flask_SQLAlchemy-0.15-py2.7.Egg',
'/usr/lib/python2.7/site-packages/Flask-0.8-py2.7.Egg',
'/usr/lib/python2.7/site-packages/Jinja2-2.6-py2.7.Egg',
'/usr/lib/python2.7/site-packages/Werkzeug-0.8.3-py2.7.Egg',
'/usr/lib/python2.7/site-packages/Flask_WTF-0.5.2-py2.7.Egg',
'/usr/lib/python2.7/site-packages/WTForms-0.6.3-py2.7.Egg',
'/usr/lib/python2.7/site-packages/Flask_Mail-0.6.1-py2.7.Egg',
'/usr/lib/python2.7/site-packages/blinker-1.2-py2.7.Egg',
'/usr/lib/python2.7/site-packages/lamson-1.1-py2.7.Egg',
'/usr/lib/python2.7/site-packages/python_daemon-1.6-py2.7.Egg',
'/usr/lib/python2.7/site-packages/nose-1.1.2-py2.7.Egg',
'/usr/lib/python2.7/site-packages/mock-0.8.0-py2.7.Egg',
'/usr/lib/python2.7/site-packages/chardet-1.0.1-py2.7.Egg',
'/usr/lib/python2.7/site-packages/lockfile-0.9.1-py2.7.Egg',
'/usr/lib/python2.7/site-packages/Flask_FlatPages-0.2-py2.7.Egg',
'/usr/lib/python2.7/site-packages/Markdown-2.1.1-py2.7.Egg',
'/usr/lib/python2.7/site-packages/PyYAML-3.10-py2.7-linux-i686.Egg',
'/usr/lib/python2.7/site-packages/uWSGI-1.0.3-py2.7.Egg',
'/usr/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-linux-i686.Egg',
'/usr/lib/python27.Zip', '/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload',
'/usr/lib/python2.7/site-packages',
'/usr/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.Egg-info']
47
webminal.org

OKそして、現在のマシンと同様の構成を持つ他の稼働中のマシンから/usr/lib/python-2.7ディレクトリ全体をrsyncし、動作を開始しました。私はセットアップが間違っていたのかわからない。 「sys.pathの印刷」の出力に以前と現在ではいくつかの違いがあります。しかし、今回の回避策により私の問題は解決されました。

編集:私のセットアップのための実際のソリューションを見つけました。 「sqlalchemyだけでは問題が解決しない」をアップグレードすると、問題を解決したflask-sqlalchemyもアップグレードする必要があります。

9
webminal.org

flaskext.sqlalchemy をインストールしましたか? SQLAlchemyパッケージはインストールされているが、flask Extensionはインストールされていないようです。 pip install Flask-SQLAlchemyまたはeasy_install Flask-SQLAlchemyを試してください。 チーズショップで入手可能 であるため、いずれかのユーティリティがそれを取得する必要があります。

63
D.Shawley

私はちょうど同じ問題を経験しました。どうやら、新しい配布方法があり、拡張コードはflaskextに保存されなくなりました。

出典:Flask CHANGELOG これは私のために働いた:

from flask_sqlalchemy import SQLAlchemy
44
sibande

これは私のために働く:

Sudo pip install flask_sqlalchemy
Sudo pip install sqlalchemy

次に、コードで次を使用します。

from flask_sqlalchemy import SQLAlchemy
10
Ming Liu

試してみてください

from flask.ext.sqlalchemy import SQLAlchemy
5
mata

だからここにアイデアがあります!

それはどこか他の場所で機能するように思えたので。

python-virtualenvをインストールし、必要に応じてvirtualenv-wrapperをインストールできます(プロジェクトを作成するなど、かなりクールです)。

各envには、異なるバージョンのeggが存在する場合があります。言い換えると、2つの異なる環境でsqlalchemy 1とsqlaclhemy 1.5を使用でき、互いに競合することはありません。現在インストールされているeggに問題があるようです。

だからここに行きます:

virtualenv --no-site-packages foo
source foo/bin/activate

パラメーター--no-site-packagesはvirtualenvを作成し、コンピューターに既にインストールされているパッケージを使用しません。これは、ベアpythonインストールとほとんど同じです。

source foo/bin/activateはvirtualenvをロードします。

それは本当にユーザーフレンドリーではありません。そして、それが http://www.doughellmann.com/projects/virtualenvwrapper/ が存在する理由です。

つまり、virtualenvがアクティブ化されると、ターミナル "(foo)user @ domain $:"にthantのようなものが表示されるはずです。それはあなたが続けることができることを意味します!

それからあなたはしなければなりません。

プロジェクトのpython setup.py developfooにあるvirtualenvにプロジェクトの依存関係をダウンロードしてインストールする必要があります。他のものをインストールする必要がある場合は、pipを使用せずにSudoまたはeasy_installを使用してください。 virtualenvを使用する場合、Sudoを使用する必要はほとんどありません。 sudoは、パッケージをグローバルpythonインストールにインストールしますが、必須ではなく、あまり望ましくありません。

Virtualenvで何かが発生した場合は、いつでも削除して新しいものを作成できます。これは大したことではありません。何も台無しにする必要はありません。動作しませんか?最初からやり直し、必要に応じてpip install -Uを実行し、必要に応じてバージョンを定義します。

最後になりましたが、他の回答では、インポートが変更されたようです。 flask-sqlalchemyの新しいバージョンが他の場所にある場合、インポートを更新するか、使用したバージョンをインストールする必要があります。

3

最初にライブラリをインストールします

pip install flask_sqlalchemy 

その後

from flask_sqlalchemy import SQLAlchemy

これをapp.pyファイルに入れて、SQLAlchemyを介してデータベースにアクセスします。

このコードは完全に機能します:

import sqlalchemy

パッケージを別のバージョンのインタープリターにインストールしたのでしょうか?

また、Shawleyが指摘したように、flask拡張機能をインストールする必要があります。

3
user1254893

パーティーに非常に遅れましたが、うまくいけば、これが誰かを助け、上記の解決策のいずれも機能せずに約1時間同じ状況にあったことを願っています。 (Windows 10マシン上)。

[設定/設定]ダイアログ(Ctrl+Alt+S)、サイドメニューから[プロジェクト]を選択します。プロジェクト通訳。

現在インストールされているパッケージを確認します(SQLAlchemyとFlask-SQLAlchemyが必要です)。パッケージ名をダブルクリックすると、「利用可能なパッケージ」メニューが開きます。

不足しているパッケージを検索し、[インストール]をクリックします。

0
RiceCrispy

Windows 10 @ 2019

私は同じ問題に直面しました。次のパッケージをインストールするのを忘れていたことがわかりました。

pip install flask_sqlalchemy

パッケージをインストールした後、すべてが完全に機能しました。希望、それは私のような他のいくつかの初心者を助けました。

0
Mujeeb Ishaque

私にとっての解決策は、使用することでした:

from flask_sqlalchemy import SQLAlchemy

の代わりに

from flask.ext.sqlalchemy import SQLAlchemy
0