我可以看出 Flask 正在尝试使用 python2.7 作为解释器,但我不明白为什么。我使用 python3 -m venv venv 创建了一个 virtualenv,安装了 Flask,并尝试运行一个应用程序。我按照预期在我的 venv 中看到了 python3.6,所以我只是不明白任何使用 python2.7 的尝试来自哪里。我认为这与我的路径有关,但我发现每当我需要在 2 和 3 之间切换时,我都需要更改我的路径,不可避免地会破坏另一个版本。
来自其他语言,“隔离”venvs 的 promise 似乎从未按预期工作,因为我经常发现 python 2 和 3 不可避免地混合在一起。有没有办法获得绝对的python 2或3环境?
最佳答案
您过去曾使用 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。您应该能够完全删除 /usr/local/bin/flask
脚本,它现在已经过时且已损坏。
您也没有激活您的 virtualenv。您不必这样做,但在您这样做之前,包含正确版本的 Flask 脚本的 bin/
目录将不会被都可用。激活 virtualenv 后,您的 PATH
环境变量将更新为首先包含 bin/
目录,方法是将其包含在 PATH
的前面值。
通过使用 virtualenv bin/
目录的路径来限定要使用的 flask
脚本,或者正确激活 virtualenv。
您可以检查您的 virtualenv 是否处于事件状态
echo $VIRTUAL_ENV
这应该打印你的 virtualenv 的路径。您还可以验证 PATH
设置是否正确; echo $PATH
应将 virtualenv .../bin/
目录显示为第一个条目。如果它未激活,请通过运行激活它
source bin/activate
在 virtualenv 根目录中。
您可以使用以下命令运行正确的flask
命令
path/to/venv/bin/flask
关于python - 这个flask错误是什么意思?/usr/local/bin/flask : bad interpreter:/usr/local/opt/python/bin/python2. 7: no such file or directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53024870/