Python导入自定义模块出现SyntaxError: invalid decimal literal报错

报错产生原因
这个报错和你贴出的函数内部代码没有任何关系,问题出在你的自定义模块的文件名不符合Python命名规则:
- Python要求导入的模块名必须是合法标识符,合法标识符只能以字母或下划线开头,不能以数字开头。
- 如果你把写了上述代码的文件保存成了数字开头的名称(比如
1temp.py、2_convert.py这类),Python在解析导入语句时,会把文件名开头的数字识别为十进制数字字面量,后续跟着的非数字字符不符合数字语法规则,就会直接抛出invalid decimal literal语法错误。
举个典型的错误场景:如果你把文件命名为3_temp.py,执行import 3_temp时,解析器读到开头的3会先判定这是个数字字面量,后面紧跟的_temp不符合数字的书写规范,就会触发该报错。
解决方法
不需要修改你写的任何函数代码,只需要把模块文件名改成非数字开头的合法名称即可,比如改成temp_utils.py、temperature_convert.py这类符合标识符命名规则的名字,再执行导入操作就不会触发该报错。
内容的提问来源于stack exchange,提问作者Mario Nikolić
相关产品推荐
相关产品推荐

