该烧瓶错误是什么意思? / usr / local / bin / flask:错误的解释器:/usr/local/opt/python/bin/python2.7:没有这样的文件或目录

时间:2018-10-27 18:08:56

标签: python flask python-venv

我可以告诉我Flask尝试使用python2.7作为解释器,但是我不明白为什么。我用python3 -m venv venv创建了一个virtualenv,安装了flask,并试图运行一个应用程序。我按预期在我的venv中看到了python3.6,所以我只是不明白使用python2.7的任何尝试来自何处。我认为这与我的路径有关,但是我发现每当需要在2和3之间切换时,都需要更改路径,不可避免地要破坏其他版本。

来自其他语言,“孤立的” venvs的承诺似乎没有按预期的那样工作,因为我经常发现python 2和3密不可分。有没有办法获得一个绝对的python 2或3环境?

1 个答案:

答案 0 :(得分:2)

过去,您曾经使用Python 2.7安装过Flask,但是该脚本指向的是不再安装的Python版本。

鉴于涉及的路径是/usr/local/bin/usr/local/opt/python/bin/python2.7,我猜您在这里使用OS X并安装了Homebrew。 Homebrew最近将python公式从Python 2切换为Python 3,您可能在此更改之前使用Python 2 pip命令安装了Flask for。您应该可以完全删除/usr/local/bin/flask脚本,它现在已过时且损坏。

您还没有激活您的virtualenv。您没有拥有的权限,但是直到您这样做之前,具有正确版本的bin/脚本的flask目录也将不可用。激活virtualenv后,您的PATH环境变量将更新为通过将其包含在bin/值的开头来首先包含PATH目录。

通过使用virtualenv flask目录的路径来限定要使用的bin/脚本,或正确激活virtualenv。

您可以检查您的virtualenv是否处于活动状态

echo $VIRTUAL_ENV

,这将显示您的virtualenv的路径。您还可以验证PATH的设置是否正确; echo $PATH应该将virtualenv .../bin/目录显示为第一项。如果未激活,请通过运行

将其激活
source bin/activate

在virtualenv根目录中。

您可以通过使用

来运行正确的flask命令
path/to/venv/bin/flask