在带有 Pyenv 的虚拟环境中使用 Flask

Using Flask in a virtualenv with Pyenv

几个月前完成一些教程后,我又开始学习 Flask。我在 Mac 上安装了 Python 2.7,但上次我安装和使用 Python 3 也是使用 Pynv,我还学习了如何创建和使用 virtualenvs。

我正在尝试 运行 带有 Python3 的 virtualenv 中的小型 Flask 应用程序,但出现“ImportError: No module named 'flask'”错误。据我所知,问题是我在 Python 2.7 下安装了 Flask,因为当我从我的 venv 运行 'pip install flask' 中得到这个时:

  Requirement already satisfied (use --upgrade to upgrade): flask in    ./venv/lib/python2.7/site-packages

然而,当我 运行 'pyenv local' 激活 venv 时,它告诉我它是 3.4.3,如果我然后 运行 'python my_app.py' Flask 工作得很好,但是当我 运行 'python3 my_app.py' 我收到 'no module named flask' 错误。

我做错了什么?

你没有做错任何事。当 pyenv 激活虚拟环境时,它指向 'python' 到 virtualenv python 可执行文件而不是 'python3'.

您可以通过执行以下命令来确认这一点:

which python3
which python

您需要使用同一版本的工具链:为 python 2 安装 Flask 将无法用于 python 3.

使用 python 3 版本(可能是 venv-py3)创建你的 virtualenv,并使用 pip 版本 3(可能是 pip3)安装包。