我在虚拟环境中工作,但我故意删除了虚拟环境文件夹。但我仍然可以运行 Flask Restful 应用程序,如下所示,而新的空虚拟环境(站点包中没有库,但甚至应用程序也像旧虚拟环境一样工作)处于活动状态。
flask run
我认为它应该失败并抱怨:
没有名为flask的模块
,因为我删除了旧的正确虚拟环境并安装了新的虚拟环境然后激活了它。
这就是重点,当我尝试运行如下所示的主脚本时
python3 app.py
它按预期抱怨:
没有名为flask的模块
似乎当我使用
flask run
运行时,即使虚拟环境处于活动状态,它也没有使用虚拟环境。因此,我无法使用其他 python 版本测试我的应用程序,也无法测试需求是否已安装并在新的其他虚拟环境中运行。我无法理解烧瓶的这种行为,希望得到任何帮助。
提前致谢。
您可能已经全局安装了
Flask
。
pip list | grep flask
您可以删除它:
pip uninstall flask
或
使用
virtualenv
选项创建 --no-site-packages
:
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
运行。现在看来它使用了虚拟环境依赖和解释器。