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'] |
号
你安装了
我也遇到过同样的问题。显然,有一种新的分发方法,扩展代码不再存储在
来源:烧瓶变更日志这对我很有用:
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不能解决问题",我还需要升级解决问题的
试试这个:
1 | from flask.ext.sqlalchemy import SQLAlchemy |
号
首先安装库
1 | pip install flask_sqlalchemy |
。
之后
1 | from flask_sqlalchemy import SQLAlchemy |
把这个放到app.py文件中,通过sqlacalchemy获取数据库的访问权限
所以这里有个主意!
因为它似乎在别的地方工作。
安装
在每个环境中,您可能有不同版本的鸡蛋。换句话说,您可以在两个不同的环境中使用sqlachemy 1和sqlachemy 1.5,它们不会相互冲突。您当前安装的鸡蛋似乎有问题。
现在我们开始:
1 2 | virtualenv --no-site-packages foo source foo/bin/activate |
。
参数--no site packages将创建virtualenv,而不使用已经安装在计算机上的包。它非常类似于一个裸的python安装。
这不是真正的用户友好型。这就是http://www.doughellmann.com/projects/virtualenvwrapper/存在的原因。
也就是说,一旦您的virtualenv被激活,您应该在终端(foo)user@domain$:"中看到类似thant的东西。这意味着你可以继续!
那你就得这么做。
你项目的
如果在virtualenv中发生了什么,您可以随时删除它并创建一个新的。这没什么大不了的。不必乱来。不起作用?从头开始,如果需要,执行
最后但并非最不重要的是,在其他答案中,进口似乎发生了变化。如果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 |
号