我在虚拟环境中工作,但我故意删除了虚拟环境文件夹。但我仍然可以运行flask restful应用程序,如下所示,而新的空虚拟环境(站点包中没有库,但即使是应用程序也像旧的虚拟环境一样工作(是活动的。
flask run
我认为它应该失败了,并抱怨道:
没有命名为烧瓶的模块
,因为我删除了旧的合适的虚拟环境并安装了新的虚拟环境,然后激活了它。
重点是,当我尝试运行下面的主脚本时
python3 app.py
正如预期的那样:
没有命名为烧瓶的模块
当我使用flask run
运行时,它似乎没有使用虚拟环境,即使虚拟环境是活动的。由于这个原因,我无法用其他python版本测试我的应用程序,也无法测试需求是否在新的其他虚拟环境中安装和运行。我无法理解烧瓶的这种行为,我很感激。
提前谢谢。
您可能已经全局安装了Flask
。
pip list | grep flask
你可以删除:
pip uninstall flask
或
使用--no-site-packages
选项创建virtualenv
:
virtualenv --no-site-packages .venv
source .venv/bin/activate
or
python3 -m venv .venv
source .venv/bin/activate
我弄清楚了那里发生了什么。
Flask在home中创建了一个名为local的目录,并将我编写的Flask应用程序中包含的系统解释器和依赖项移到了那个里。
然后,当使用flask run
运行时,它从那里部署应用程序。这意味着我的flask应用程序并没有像我们猜测的那样在虚拟环境中运行。
因此,在这种情况下,我重新创建了我的虚拟环境,在安装了依赖项之后,我使用python3 app.py
运行。现在看来,它使用了虚拟环境依赖项和解释器。