Simple test case with python 2.7 on windows 7 prof 64 bits:
via python I checkout a git project in a directory, let's say, c:/temp/project
.
Afterwards I delete it with the python command
shutil.rmtree('c:/temp/project')
After the command, the folder is empty (no hidden files) but it cannot be removed it self because of the following error:
WindowsError: [Error 32] The process cannot access the file because it is being used by another process: 'C:\\temp\\project'
I've checked and git is not running at that moment (I've even tried a sleep(10) to be sure). I've tried this solution:
What user do python scripts run as in windows?
but it doesn't work, same error.
Tried a os.system('rmdir')
but same error.
Tried win32api.SetFileAttributes()
function but same error.
If I delete the folder via explorer, there's no problem.
How can I solve the problem?
The OP was running in the wrong dir ... but i found this thread for a problem using GitPython; seems like a common case, as git-python will hold handles to your repo if you don't clean up in some odd ways:
import gc, stat
gc.collect()
your_repo_obj.git.clear_cache()
# now this will succeed:
shutil.rmtree(your_repo_dir)
the need for these gymnastics are due to both a bug, and by design. This bug describes the reasons: https://github.com/gitpython-developers/GitPython/issues/553
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With