我已经在这里找到了类似的问题,但是找不到具体的解决方案。 我有一个已激活并正在运行的虚拟环境,并且在其中安装了flask-wtf模块,如下所示:
pip install flask-wtf
然后,有一个名为“ test.py”的脚本,它从flask_wtf导入导入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调用模块的一些简单要点,而且任何可能安装的模块都可能发生类似情况。
答案 0 :(得分:0)
您可以使用以下方法验证安装了哪些软件包:
pip freeze
您还可以使用以下方法来验证pip是否在虚拟环境中运行:
pip -V
最后一条命令将输出当前虚拟环境的路径,我建议您首先验证您是否正在实际使用虚拟环境,安装flask-wtf,然后验证使用以下命令安装flask-wtf点冻结。
答案 1 :(得分:0)
最后,找到原因-我忘记了,我已经在〜/ .bash_aliases文件中为python3.6指定了别名...因此在这种情况下,命令
which python
返回虚拟环境python的路径,但调用
python
名为python3.6,已全局安装... 删除〜/ .bash_aliases文件后,一切正常。