shutil.copytree传入dirs_exist参数在Linux环境下报错问题咨询
问题解答
这个现象属于预期的功能表现,核心触发原因是Python版本差异:
shutil.copytree的dirs_exist_ok参数是Python 3.8版本才正式加入的官方特性,任何低于3.8的Python版本调用时传入该参数都会触发参数不识别的报错,如果你代码里写的是dirs_exist而非官方标准参数名dirs_exist_ok,也会额外触发参数名错误。- Kaggle的docker-python镜像在较早的发行版本中默认预装的Python版本为3.7及以下,原生不支持该参数,因此调用会报错;你本地Windows 10环境安装的Python版本高于等于3.8,因此代码可以正常运行。
如果需要在当前Kaggle镜像环境下实现相同功能,可以选择两种适配方案:
- 升级镜像内的Python版本到3.8及以上,即可正常使用
dirs_exist_ok参数 - 不升级Python版本的前提下,先调用
os.makedirs(target_path, exist_ok=True)提前创建目标目录,再遍历源目录逐个复制文件到目标路径,可实现完全相同的效果。
内容的提问来源于stack exchange,提问作者GlaceCelery
相关产品推荐
相关产品推荐

