TypeError: copytree() got an unexpected keyword argument ‘dirs_exist_ok‘

参考链接:

TypeError: copytree() got an unexpected keyword argument ‘dirs_exist_ok‘_两只蜡笔的小新的博客-CSDN博客

前言:

这个bug的由来,博主在python3.8中编写的代码,使用函数

shutil.copytree(code_Path,code_buildPath,dirs_exist_ok=True)

但是由于需要换到python3.7中运行,报错了没有 keyword argument 'dirs_exist_ok',最开始的时候博主以为自己不小心碰到键盘,错打上去了,经过尝试之后,发现python3.8中的shutil可以正常使用关键字。但是有很多环境已经在python3.7中安装好,于是尝试在python3.7中修改源码,以满足项目需求。

1. 找到环境中的shutil.py 所在文件打开

     

 可以看到,确实没有dirs_exist_ok关键字,这里博主为了程序能正常运行,直接加入dirs_exist_ok=True关键字,如下

def copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2,
             ignore_dangling_symlinks=False,dirs_exist_ok=True):

这样程序在第一次运行的时候,没有发生错误,代码可以正常运行了,但是出现一个问题,当代码第二次运行的时候,出现下面的错误:

 也就是说,给shutil.copytree()函数加上dirs_exist_ok关键字,只是保证了原来的程序的运行,并没有使原来的函数的功能正常。

2. 修改函数的功能

在该函数的315行,可以找到这行代码,或者直接按照村务的提示,找到这行代码。

将其修改为:

os.makedirs(dst,exist_ok=dirs_exist_ok)

如下图所示

 就可以正常适用该函数的功能。

技术支持:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值