ImportError:没有名为sqlalchemy的模块

web*_*org 49 python sqlalchemy flask-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
Run Code Online (Sandbox Code Playgroud)

$ sudo pip install SQLAlchemy --upgrade要求已经是最新的:/usr/lib/python2.7/site-packages中的SQLAlchemy清理...

虽然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']
Run Code Online (Sandbox Code Playgroud)

D.S*_*ley 63

你安装了flaskext.sqlalchemy吗?看起来您已经安装了SQLAlchemy软件包,但没有安装烧瓶扩展.试试pip install Flask-SQLAlchemyeasy_install Flask-SQLAlchemy.它可以在cheeseshop中使用,所以任何一个实用程序都应该拿起它.


小智 44

我刚刚遇到了同样的问题.显然,有一种新的分发方法,扩展代码不再存储在其下flaskext.

来源: Flask CHANGELOG 这对我有用:

from flask_sqlalchemy import SQLAlchemy
Run Code Online (Sandbox Code Playgroud)

  • 或者`from flask.ext.sqlalchemy import SQLAlchemy` (3认同)

小智 10

这对我有用:

sudo pip install flask_sqlalchemy
sudo pip install sqlalchemy
Run Code Online (Sandbox Code Playgroud)

然后在你的代码中使用:

from flask_sqlalchemy import SQLAlchemy
Run Code Online (Sandbox Code Playgroud)


web*_*org 9

好吧,我已经通过pip重新安装了包,即使这没有帮助.然后我从其他工作机器rsync'整个/usr/lib/python-2.7目录,其配置与当前机器类似.它开始工作.我不知道,我的设置有什么问题.我现在看到一些不同的"print sys.path"输出.但现在我的问题通过这项工作得以解决.

编辑:为我的设置找到真正的解决方案.升级"sqlalchemy只能解决问题"我还需要升级flask-sqlalchemy才能解决问题.

  • 这是因为你的python-env的lib/site-packages被sqlchemy的错误版本污染了,而easy_install/pip首先找到它并检查你的"easy-install.pth"或"setuptools.pth"是否已安装的软件包,以及如果发现破损版本就会停止; (3认同)
  • 你为什么不用virtualenv? (2认同)

mat*_*ata 5

试试这个:

from flask.ext.sqlalchemy import SQLAlchemy
Run Code Online (Sandbox Code Playgroud)


小智 5

首先安装库

pip install flask_sqlalchemy 
Run Code Online (Sandbox Code Playgroud)

在那之后

from flask_sqlalchemy import SQLAlchemy
Run Code Online (Sandbox Code Playgroud)

将其放入 app.py 文件中以通过 SQLAlchemy 获取数据库的访问权限