Python pysvn.ClientError:WC被sqlite锁定,尝试在第二次签出时将只读数据库写入同一目录
我尝试使用临时目录重复签出和删除,如下所示:Python pysvn.ClientError:WC被sqlite锁定,尝试在第二次签出时将只读数据库写入同一目录,python,linux,svn,pysvn,Python,Linux,Svn,Pysvn,我尝试使用临时目录重复签出和删除,如下所示: client=pysvn.client() url=“…” path=“\tmp\temp\u dir” client.checkout(url,路径)#这里没问题 #清除dir并再次签出 shutil.rmtree(路径) os.makedirs(路径)#在这里之前可以 断言非os.listdir(路径) client.checkout(url,路径)#异常! 在最后一行excute中,它引发了一个异常pysvn.ClientError:Work
client=pysvn.client()
url=“…”
path=“\tmp\temp\u dir”
client.checkout(url,路径)#这里没问题
#清除dir并再次签出
shutil.rmtree(路径)
os.makedirs(路径)#在这里之前可以
断言非os.listdir(路径)
client.checkout(url,路径)#异常!
在最后一行excute中,它引发了一个异常pysvn.ClientError:Working copy'/tmp/temp_dir'锁定,并出现其他错误:sqlite[S8]:尝试写入只读数据库
我试着用svn checkou
在终端结账,效果很好。但即使在我删除了由命令行签出的文件之后,我仍然无法在代码中通过pysvn进行签出,但有相同的异常
一些补充资料:
- 我在linux上使用python3.4和pysvn1.8.0李>
- 在Windows上使用python3.5和Pysvn1.9.9不会引发同样的问题
我通过获得一个新的
pysvn.Client
实例解决了这个问题。换句话说,通过使用以下代码:
client = pysvn.Client()
client.checkout(url, path) # it's ok here
# clear dir and checkout again
shutil.rmtree(path)
os.makedirs(path) # ok until here
assert not os.listdir(path)
client = pysvn.Client() # obtain another instance
client.checkout(url, path) # ok
似乎有一些缓存在pysvn.Client
实例中的信息阻止了我再次签出,但我不知道为什么