gpt4 book ai didi

python - Flask 应用程序运行 Python 2.x 而不是 3.x

转载 作者:行者123 更新时间:2023-11-30 22:20:33 26 4
gpt4 key购买 nike

在 Ubuntu 16.04.3 x64 Web 服务器上运行 Flask 应用程序时,尝试导入 Flask-OpenID 库 v1.2.5 时出现以下错误:

 File "/usr/local/lib/python2.7/dist-packages/openid/oidutil.py", line 17, in <module>
from urllib.parse import urlencode
ImportError: No module named parse

我知道发生这种情况是因为该模块是使用 python 2.7.5(我已安装在我的计算机上)而不是 3.5.2(也已安装)加载的。

检查 python 的版本以验证它是否已安装在计算机上:

>> python -V
Python 3.5.2

虚拟环境是用python 3初始化的:

python3 -m venv env

Flask 应用程序似乎仍在使用 python 2.7.5 中的文件。

如果这确实是问题,有没有办法设置默认值或确保 Flask 使用正确的 python 版本?我的应用程序在我的 PC 上的开发环境中运行没有错误。

最佳答案

事实证明我的虚拟环境配置正确,但问题实际上是在 Apache Web 服务器上运行的 mod_wsgi 是跨 Python 版本 2.7.X 编译的,并使用 python 2.7.5 而不是 3.5.2 加载 Flask .

为了解决这个问题,我首先更新到了可以运行 python 3.5.1+ 的 wsgi 版本

sudo apt-get install libapache2-mod-wsgi-py3

从此时起,您的 Flask 应用程序可能无法运行,因为您的虚拟主机,并且您的 Flask 应用程序的 wsgi 文件需要使用 python 版本 3 进行正确配置。

按照本教程操作:http://devmartin.com/blog/2015/02/how-to-deploy-a-python3-wsgi-application-with-apache2-and-debian/

您还应该将 VirtualHost 配置更改为本文中显示和解释的配置:https://stackoverflow.com/a/39419825/9367575

关于python - Flask 应用程序运行 Python 2.x 而不是 3.x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48818824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com