首页 > 解决方案 > ModuleNotFoundError:没有名为“flask_wtf”的模块

问题描述

我已经在这里找到了类似的问题,但找不到具体的解决方案。我有一个已激活并正在运行的虚拟环境,并且在其中我安装了 flask-wtf 模块,如下所示:

pip install flask-wtf

然后,有一个名为“test.py”的脚本,它包含从 flask_wtf import FlaskForm -> 并且当它从终端启动时

python test.py

引发错误,如

    from flask_wtf import FlaskForm
ModuleNotFoundError: No module named 'flask_wtf'

命令

which flask_wtf

什么都不返回。但是,我可以在 flaskEnv/lib/python3.6/site-packages 文件夹中看到 flask_wtf 文件夹(其中 flaskEnv - 是虚拟环境的目录)。

按照我在网站上找到的建议,运行脚本为

/home/kosist/Documents/Environments/flaskEnv/bin/python test.py

工作得很好 - 脚本执行没有错误。但是——为什么会这样?我不想一直输入python的完整路径,而且,命令

which python

返回以下内容:

/home/kosist/Documents/Environments/flaskEnv/bin/python

所以调用python已经指的是那个路径!

此外,如果全局安装了 flask-wtf 模块,则脚本可以通过

sudo pip install flask-wtf

然后我可以运行脚本

python test.py

一切正常。

有人可以帮忙解释一下,发生了什么,以及如何解决吗?因为我担心我错过了一些关于从 virtualenv 调用模块的简单关键点,并且任何可能安装的模块都可能发生类似的情况。

标签: pythonpipvirtualenv

解决方案


最后,找到了原因 - 我忘记了,我在 ~/.bash_aliases 文件中指定了 python3.6 的别名......所以在这种情况下是命令

which python

返回虚拟环境python的路径,但调用

python

称为python3.6,全局安装...删除〜/ .bash_aliases文件后,一切正常。


推荐阅读