我无法在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']
答案 0 :(得分:59)
您安装了flaskext.sqlalchemy
吗?看起来您已经安装了SQLAlchemy软件包,但没有安装烧瓶扩展。试试pip install Flask-SQLAlchemy
或easy_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)
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中下载并安装项目的依赖项。如果您需要安装其他任何内容,请使用pip
或easy_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)
我遇到了同样的问题。原来我忘了安装以下软件包:
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 中尝试过