当前位置:   article > 正文

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

typeerror: copytree() got an unexpected keyword argument 'dirs_exist_ok

 前言:

这个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)

如下图所示

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

技术支持:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/286510?site
推荐阅读
相关标签
  

闽ICP备14008679号