导入time/glob触发SyntaxError:非默认参数在默认参数之后
解决PyCharm中
SyntaxError: non-default argument follows default argument错误 你贴出的代码本身没有语法问题,控制台能正常运行也证明了这一点。错误提示指向import time行是因为PyCharm的语法解析器可能把真正的错误位置关联到了附近的代码行,真正的问题出在同一个Python文件的其他代码中。
核心原因
这个错误的本质是函数定义时参数顺序错误——你在某个函数里把带有默认值的参数放在了不带默认值的参数前面,比如:
# 错误示例:带默认值的参数在无默认值参数之前 def greet(name="Guest", age): print(f"Hello {name}, you are {age} years old")
这种写法违反Python语法规则,才会触发该错误,而编辑器可能错误地将报错位置指向了附近的import语句。
解决步骤
- 检查全部代码:打开你运行的Python文件,逐行排查所有函数定义,确保所有不带默认值的参数都放在带默认值参数的前面。修正后重新运行即可。
- 验证解释器配置:
- 打开PyCharm,进入
File > Settings > Project: [你的项目名] > Python Interpreter - 确认当前使用的解释器是Python 3.11.4(和你控制台运行的版本一致)
- 如果版本不符,点击右上角齿轮图标,选择
Add,找到本地Python 3.11.4的安装路径添加并设置为项目解释器
- 打开PyCharm,进入
- 隔离测试:创建一个全新的空白Python文件,只粘贴你提供的代码并运行。如果能正常输出年份,说明原文件存在其他语法错误;如果仍报错,重新检查解释器配置。
关于glob模块的类似问题
和time模块的情况完全一致,不是glob库本身的问题,而是你的代码中其他位置存在函数参数顺序错误,导致报错指向了import glob行,按照上面的步骤排查即可。
内容的提问来源于stack exchange,提问作者Abend360
相关产品推荐
相关产品推荐

