【问题标题】:Using Flask in a virtualenv with Pyenv在带有 Pyenv 的 virtualenv 中使用 Flask
【发布时间】:2016-05-27 05:34:52
【问题描述】:

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

我正在尝试使用 Python3 在 vi​​rtualenv 中运行一个小型 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

但是,当我在激活 venv 的情况下运行 'pyenv local' 时,它告诉我它是 3.4.3,如果我随后运行 'python my_app.py' Flask 工作得很好,但是当我运行 'python3 my_app.py' 时,我得到了 '没有名为 flask 的模块错误。

我在这里做错了什么?

【问题讨论】:

    标签: python flask python-venv pyenv


    【解决方案1】:

    您需要使用相同版本的工具链:为 python 2 安装 Flask 不会使其可用于 python 3。

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

    【讨论】:

      【解决方案2】:

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

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

      which python3
      which python
      

      【讨论】:

      • 好的,谢谢,是的,'which python' 返回我的 venv PATH,那么我需要在这里做什么才能将 Python3 设置为 venv 并且还可以让 Flask 在那里工作?
      • 对不起,我误会了,如果你运行:which pip && which pip3 是否指向你的 virtualenv?如果他们这样做了,那么只需使用该 pip 命令和“python”。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-03
      • 1970-01-01
      • 2018-01-16
      • 1970-01-01
      • 2016-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多