无法创建Dataproc自定义镜像,遇NameError错误请求技术支持
解决Dataproc自定义镜像脚本中的
NameError: name 'basestring' is not defined错误 这个问题根源很清晰——你正在用Python 3运行原本为Python 2编写的generate_custom_image.py脚本,basestring是Python 2里用来统一str和unicode的专属类型,Python 3已经移除了这个定义,所有字符串类型都统一用str表示。
下面是具体的修复步骤:
第一步:确认当前Python版本
先执行命令检查默认Python版本:python --version如果输出是Python 3.x,就坐实了版本不匹配的问题。
第二步:修改脚本代码
找到脚本第98行的代码:if stdout and isinstance(stdout, basestring):将其替换为Python 3兼容的写法:
if stdout and isinstance(stdout, str):建议全局搜索脚本里其他使用
basestring的位置,全部替换成str,避免后续再触发同类错误。可选方案:切换到Python 2环境(不推荐)
要是不想修改代码,也可以尝试用Python 2运行脚本,但要注意Python 2已经停止官方支持,存在安全隐患,更推荐上面适配Python 3的方案。
另外,建议你核对一下所用Dataproc自定义镜像脚本的版本,部分旧版本脚本可能仍停留在Python 2兼容阶段,可以看看是否有更新的Python 3适配版本可用。
内容的提问来源于stack exchange,提问作者rhg
相关产品推荐
相关产品推荐

