关于python:ImportError:没有名为sqlalchemy的模块

ImportError: No module named sqlalchemy

我在python中找不到模块,尽管easy-install说它已经安装了。你知道怎么解决这个问题吗?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ 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
up-to-date: SQLAlchemy in /usr/lib/python2.7/site-packages Cleaning
up...

虽然pip说已经安装了,但在sys.path输出中找不到。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ 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']


你安装了flaskext.sqlalchemy吗?看起来您已经安装了sqlacalchemy包,但没有安装flask扩展。试试pip install Flask-SQLAlchemyeasy_install Flask-SQLAlchemy。它在奶酪店可以买到,所以任何一个实用工具都应该把它捡起来。


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

来源:烧瓶变更日志这对我很有用:

1
from flask_sqlalchemy import SQLAlchemy


这对我很有用:

1
2
sudo pip install flask_sqlalchemy
sudo pip install sqlalchemy

然后在代码中使用:

1
from flask_sqlalchemy import SQLAlchemy


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

编辑:为我的设置找到了真正的解决方案。升级"sqlacalchemy only不能解决问题",我还需要升级解决问题的flask-sqlalchemy


试试这个:

1
from flask.ext.sqlalchemy import SQLAlchemy


首先安装库

1
pip install flask_sqlalchemy

之后

1
from flask_sqlalchemy import SQLAlchemy

把这个放到app.py文件中,通过sqlacalchemy获取数据库的访问权限


所以这里有个主意!

因为它似乎在别的地方工作。

安装python-virtualenv。您还可以选择安装virtualenv包装器(这对于创建项目非常酷,等等)

在每个环境中,您可能有不同版本的鸡蛋。换句话说,您可以在两个不同的环境中使用sqlachemy 1和sqlachemy 1.5,它们不会相互冲突。您当前安装的鸡蛋似乎有问题。

现在我们开始:

1
2
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 develop。它应该在位于foo的virtualenv中下载和安装项目的依赖项。如果您需要安装其他设备,请使用pipeasy_install,而不使用sudo。使用virtualenv时,几乎不需要使用sudo。sudo将在全局python安装中安装软件包,而这不是必需的,也不是真正需要的。

如果在virtualenv中发生了什么,您可以随时删除它并创建一个新的。这没什么大不了的。不必乱来。不起作用?从头开始,如果需要,执行pip install -U,如果需要,定义版本,等等。

最后但并非最不重要的是,在其他答案中,进口似乎发生了变化。如果flask sqlAlchemy的新版本位于其他地方,则应更新导入或安装您使用的版本。


此代码非常有效:

1
import sqlalchemy

也许您在另一个版本的解释器中安装了该包?

同样,正如肖利指出的,你需要安装烧瓶的延伸部分,以便可以接近它。


很晚才去参加聚会,但希望这能帮助一些人,在同样的情况下,大约一个小时没有任何上述的解决方案。(在Windows 10计算机上)。

在"设置/首选项"对话框(ctrl+alt+s)中,从侧菜单中选择"项目:项目解释器"。

检查当前已安装的包(您需要sqlAlchemy和flask sqlAlchemy)。双击任何包名称,将打开"可用包"菜单。

搜索缺少的软件包,然后单击"安装"。


我的解决方案是:

1
from flask_sqlalchemy import SQLAlchemy

而不是

1
from flask.ext.sqlalchemy import SQLAlchemy