我可以告诉我Flask尝试使用python2.7作为解释器,但是我不明白为什么。我用python3 -m venv venv
创建了一个virtualenv,安装了flask,并试图运行一个应用程序。我按预期在我的venv中看到了python3.6,所以我只是不明白使用python2.7的任何尝试来自何处。我认为这与我的路径有关,但是我发现每当需要在2和3之间切换时,都需要更改路径,不可避免地要破坏其他版本。
来自其他语言,“孤立的” venvs的承诺似乎没有按预期的那样工作,因为我经常发现python 2和3密不可分。有没有办法获得一个绝对的python 2或3环境?
答案 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