【发布时间】:2021-11-19 21:42:06
【问题描述】:
我继承了 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.x,它应该是
from io import StringIO。 -
我是否应该修改代码使其显示为:
try: from io import StringIO except: from io import StringIO -
或多或少,但最好避免裸露的
except:语句,所以我建议使用像except ImportError:这样的特定语句 -
我可以尝试类似
try: from io import StringIOexcept: ImportError: -
from cStringIO import StringIO后面应该有一个except ImportError:行。
标签: python python-3.x python-2.7