ModuleNotFoundError: No module named 'flask_openid' (for Python3.6)

ModuleNotFoundError: No module named 'flask_openid' (for Python3.6)

我正在尝试 运行 使用 Python 3.6 的 Flask 项目。

我遇到了一个错误:

...

从 flask_openid 导入 OpenID
ModuleNotFoundError:没有名为 'flask_openid'

的模块

Flask-OpenID 在我的 Python v3.5 dist-packages 中可用。

(当我运行: "sudo pip3 install Flask-OpenID",显示 "Requirement already satisfied (use --upgrade to upgrade): Flask-OpenID in /usr/local/lib/python3.5/dist-packages" )

我应该如何为 Python 3.6 安装 openid?

documentation 指出您应该按如下方式导入 OpenID

from flask.ext.openid import OpenID

软件包本身已正确安装(在您的 Python3.5 环境中),如 pip 所示,当您再次尝试安装它时:

Requirement already satisfied (use --upgrade to upgrade): Flask-OpenID in /usr/local/lib/python3.5/dist-packages

但是,正如您在问题中所述:

I was trying to run a Flask project using Python 3.6

您可能需要确保您的 python3pip3 确实指向了您希望它们指向的位置,例如在您的终端上:

$ ls -l $(which pip3)

或者更好的是,你真的应该考虑为你的项目创建 virtualenvs,它首先有助于避免这些类型的问题:

  • 创建一个新的 Python 3.6 virtualenv
  • 激活你的新虚拟环境
  • 在 virtualenv 中使用 pip 安装你的需求

然后 运行 你在这个 virtualenv 中的脚本,你会确保你使用的是你想要的 Python,你的依赖项是你期望的(并且只有在那里,而不是在其他地方搞砸其他项目)。

现在这可能看起来很费力,但第一次做只需要几分钟,很快就会成为第二天性,并为您省去很多麻烦。

对我来说,

python3.6 -m pip install flask_openid

解决了问题。

以上命令将为 python3.6.

安装 openid