ImportError:没有名为sqlalchemy的模块

时间:2012-05-13 14:22:43

标签: 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
  

$ sudo pip install SQLAlchemy --upgrade要求已经   最新:SQLAchemy在/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']

15 个答案:

答案 0 :(得分:59)

您安装了flaskext.sqlalchemy吗?看起来您已经安装了SQLAlchemy软件包,但没有安装烧瓶扩展。试试pip install Flask-SQLAlchemyeasy_install Flask-SQLAlchemy。它是available in the cheeseshop所以任何一个实用程序都应该选择它。

答案 1 :(得分:43)

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

来源: Flask CHANGELOG 这对我有用:

from flask_sqlalchemy import SQLAlchemy

答案 2 :(得分:9)

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

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

答案 3 :(得分:9)

这对我有用:

sudo pip install flask_sqlalchemy
sudo pip install sqlalchemy

然后在您的代码中使用:

from flask_sqlalchemy import SQLAlchemy

答案 4 :(得分:5)

try this

from flask.ext.sqlalchemy import SQLAlchemy

答案 5 :(得分:3)

此代码完美无缺:

import sqlalchemy

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

此外,像Shawley指出的那样,您需要安装烧瓶扩展,以便可以访问它。

答案 6 :(得分:3)

所以这是一个想法!

因为它似乎在其他地方工作。

安装python-virtualenv 并且您可以选择安装virtualenv-wrapper(这对于创建项目非常酷)等等。

在每个环境中,您可能有不同版本的鸡蛋。换句话说,你可以在两个不同的环境中使用sqlalchemy 1和sqlaclhemy 1.5,它们彼此之间不会发生冲突。您的当前安装的鸡蛋似乎有问题。

所以我们走了:

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/存在的原因。

那就是说,你应该在你的终端上看到类似的东西&#34;(foo)user @ domain $:&#34;一旦你的virtualenv被激活。这意味着你可以继续!

然后你必须这样做。

您项目的

python setup.py develop。它应该在位于foo的virtualenv中下载并安装项目的依赖项。如果您需要安装其他任何内容,请使用pipeasy_install而不使用sudo。使用virtualenv时,您几乎不需要使用sudo。 Sudo会在你的全局python安装中安装软件包,虽然它不是必需的,但并不是很理想。

如果你的virtualenv中发生了某些事情,你可以随时删除它并创建一个新的。这没什么大不了的。无需乱搞任何东西。不起作用吗?重新开始,如果需要,请执行pip install -U,根据需要定义版本等等。

最后但并非最不重要的是,在其他答案中,似乎导入已更改。如果flask-sqlalchemy的新版本位于其他位置,则应更新导入或安装以前使用的版本。

答案 7 :(得分:3)

首先安装该库

pip install flask_sqlalchemy 

之后

from flask_sqlalchemy import SQLAlchemy

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

答案 8 :(得分:0)

对我来说,解决方案是使用:

from flask.ext.sqlalchemy import SQLAlchemy

代替

from multiprocessing import Queue, Process

class Test:
    def __init__(self, array_list):
        self.array_list = array_list

    def func(self, names):
        return 'Test' + names

    def iterate(self, upper, lower):
        output = [self.func(self.array_list[i]) for i in range(lower, upper)]
        return output

if __name__ == "__main__":
    # Serial method
    test_list = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
    obj1 = Test(test_list)
    results = obj1.iterate(len(test_list), 0)
    print(results)

    def run_and_send_back_output(queue, func, *args):
        result = func(*args) # run the func
        queue.put(result)    # send the result back


    q = Queue()
    p1 = Process(
        target=run_and_send_back_output,
        args=(q, obj1.iterate, 4, 0)
    )
    p1.start()
    p2 = Process(
        target=run_and_send_back_output,
        args=(q, obj1.iterate, 8, 4)
    )
    p2.start()
    p1.join()
    p2.join()

    results = []
    while not q.empty():
        results.extend(q.get())
    print(results)

答案 9 :(得分:0)

参加聚会很晚,但是希望这会对处于相同情况下大约一个小时的人有所帮助,而上述任何解决方案都无法解决。 (在Windows 10计算机上)。

在“设置/首选项”对话框( Ctrl + Alt + S )中,从侧面菜单中选择“项目”:项目口译员。

检查当前已安装的软件包(您需要SQLAlchemy和Flask-SQLAlchemy)。双击任何软件包名称,将打开“可用软件包”菜单。

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

答案 10 :(得分:0)

在Windows 10 @ 2019上

我遇到了同样的问题。原来我忘了安装以下软件包:

pip install flask_sqlalchemy

安装该软件包后,一切正常。希望,它对其他像我这样的菜鸟有所帮助。

答案 11 :(得分:0)

我刚刚在虚拟环境中遇到了同样的问题。 对我来说,使用来自venv的python安装软件包有效:
.\venv\environment\Scripts\python.exe -m pip install flask-sqlalchemy

答案 12 :(得分:0)

我是新手,使用python 3.8并遇到了相同的问题。我使用pip而不是pip3进行安装,因为我认为pip安装程序对于python2和python3是相同的 所以这是正确的安装

pip3 install flask_sqlalchemy

答案 13 :(得分:0)

可能是一个愚蠢的错误;但是,我遇到了这个问题,结果是“ pip3 install sqlalchemy”将库安装在用户特定的目录中。

在Linux机器上,我以user1的身份登录,并在user2的目录中执行python脚本。我将sqlalchemy安装为user1,默认情况下,它将文件放置在user1的目录中。在user2的目录中安装sqlalchemy后,问题消失了。

答案 14 :(得分:0)

我不确定它是否仍然相关,但尝试卸载 sqlalchemy,然后安装flask-sqlalchemy。

我猜如果你有 sqlalchemy,flask-sqlalchemy 将无法工作。

在 Python 3.8 中尝试过