将 Python 2.7 更新到 3.9 尝试: from cStringIO import StringIO 除了: from StringIO import StringIO
Updating Python 2.7 to 3.9 try: from cStringIO import StringIO except: from StringIO import StringIO
我在 Python 2.7 中继承了一个项目,需要更新以与 Python 3.9 兼容,因为 AWS Lambda 已弃用对 Py 2.7 的支持
需要更新到3.9的代码:
try:
from cStringIO import StringIO
except:
from StringIO import StringIO
在 AWS Cloudwatch 中,我经常遇到“无法导入模块”的错误,我认为可能是因为这行代码。
选项 1:我是否应该修改代码使其显示为:
try:
from io import StringIO
except:
from io import StringIO
选项 2:我是否应该修改代码使其显示为:
try:
from io import StringIO
except ImportError:
from cStringIO import StringIO
在 Python 3 中你唯一需要的是
from io import StringIO
io
模块替换了 StringIO
和 cStringIO
模块,可用于 Python 2.
来自用户@chepner:
“在 Python 2 中,人们会尝试导入更快的 cStringIO 模块,如有必要则退回到较慢的纯 Python 模块。在 Python 3 中,只有一个用户-面对 io 模块。如果第一次导入失败,第二次也会失败。(如果确实失败,那是你的 Python 安装的问题,超出了你的脚本要处理的范围。 )"
我的最终代码将是
from io import StringIO
我在 Python 2.7 中继承了一个项目,需要更新以与 Python 3.9 兼容,因为 AWS Lambda 已弃用对 Py 2.7 的支持
需要更新到3.9的代码:
try:
from cStringIO import StringIO
except:
from StringIO import StringIO
在 AWS Cloudwatch 中,我经常遇到“无法导入模块”的错误,我认为可能是因为这行代码。
选项 1:我是否应该修改代码使其显示为:
try:
from io import StringIO
except:
from io import StringIO
选项 2:我是否应该修改代码使其显示为:
try:
from io import StringIO
except ImportError:
from cStringIO import StringIO
在 Python 3 中你唯一需要的是
from io import StringIO
io
模块替换了 StringIO
和 cStringIO
模块,可用于 Python 2.
来自用户@chepner: “在 Python 2 中,人们会尝试导入更快的 cStringIO 模块,如有必要则退回到较慢的纯 Python 模块。在 Python 3 中,只有一个用户-面对 io 模块。如果第一次导入失败,第二次也会失败。(如果确实失败,那是你的 Python 安装的问题,超出了你的脚本要处理的范围。 )"
我的最终代码将是
from io import StringIO