70

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

$ 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 要件はすでに最新です: SQLAlchemy in /usr/lib/python2.7/site-packages クリーンアップ中...

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']
4

16 に答える 16

76

インストールしましたflask-sqlalchemyか?SQLAlchemyはインストールされているようですが、Flask拡張機能はインストールされていないようです。プロジェクトのvirtualenvを試して、 PyPIpip install Flask-SQLAlchemyからインストールしてください。

于 2012-05-13T14:32:54.803 に答える
48

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

ソース: Flask CHANGELOG これは私にとってはうまくいきました:

from flask_sqlalchemy import SQLAlchemy
于 2012-05-27T15:33:42.750 に答える
21

virtualenv に pip を使用して Flask-SQLAlchemy をインストールします。

pip install flask_sqlalchemy

次に、コードにインポートflask_sqlalchemyします。

from flask_sqlalchemy import SQLAlchemy
于 2016-12-19T20:40:25.113 に答える
10

さて、私はpip経由でパッケージを再インストールしましたが、それは役に立ちませんでした. そして、現在のマシンと同様の構成を持つ他の稼働中のマシンから /usr/lib/python-2.7 ディレクトリ全体を rsync しました。動作を開始しました。セットアップの何が問題だったのかわかりません。「print sys.path」の出力が以前と現在で若干異なっていることがわかります。しかし、今私の問題はこの回避策によって解決されています。

編集:私のセットアップの本当の解決策を見つけました。「sqlalchemyのみをアップグレードしても問題は解決しません」問題flask-sqlalchemyを解決したアップグレードも必要です。

于 2012-05-15T02:12:50.107 に答える
5

これを試してください

from flask.ext.sqlalchemy import SQLAlchemy
于 2012-05-13T16:52:25.897 に答える
4

ここにアイデアがあります!

他の場所で機能しているように見えたので。

インストールpython-virtualenv し、必要に応じて virtualenv-wrapper をインストールできます (これはプロジェクトなどを作成するのに非常に便利です)

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

だからここに行きます:

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

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

source foo/bin/activatevirtualenv をロードします。

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

そうは言っても、virtualenv がアクティブ化されると、ターミナルに「(foo)user@domain$:」のようなものが表示されるはずです。続けられるということです!

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

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

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

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

于 2012-06-30T13:13:10.923 に答える
2

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

import sqlalchemy

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

また、Shawley が指摘したように、フラスコ拡張機能にアクセスできるようにするには、フラスコ拡張機能をインストールする必要があります。

于 2012-05-13T14:24:52.060 に答える
2

私は新参者で、python 3.8を使用して同じ問題に遭遇しました。pipインストーラーはpython2とpython3で同じだと思ったので、pip代わりにインストールしたので、これは適切なインストールですpip3

pip3 install flask_sqlalchemy

于 2020-04-11T18:11:58.287 に答える
1

おそらくばかげた間違いです。しかし、私はこの問題を経験し、問題は「pip3 install sqlalchemy」がライブラリをユーザー固有のディレクトリにインストールすることであることが判明しました。

私の Linux マシンでは、user1 としてログインし、user2 のディレクトリで Python スクリプトを実行していました。sqlalchemy を user1 としてインストールすると、デフォルトでファイルが user1 のディレクトリに配置されました。user2 のディレクトリに sqlalchemy をインストールすると、問題は解消されました。

于 2020-09-21T04:47:10.167 に答える
0

仮想環境を使用して同じ問題が発生しました。私にとって、venvからpythonを使用してパッケージをインストールするとうまくいきました:
.\venv\environment\Scripts\python.exe -m pip install flask-sqlalchemy

于 2019-12-11T08:47:35.260 に答える