Jan-01-2020, 02:12 AM
I am looking for a way to get the Python interpreter to release a native Python extension file (
I have a native Python extension, written in Rust, that is named "core" and is compiled to a windows DLL with a
In my
My problem is that, after importing the
The reason I need to be able to do this is because
Is there any way for me to get the Python interpreter to release that file so that it can be deleted?
This is only a problem on Windows because Unix is able to simply "unlink" the file while Python is still using it.
.pyd
) so that I can delete the file when running on Windows.I have a native Python extension, written in Rust, that is named "core" and is compiled to a windows DLL with a
.pyd
extension creating the file core.pyd
. I put this core.pyd
file in the root of my Python module which is named arsenal-blender
.In my
arsenal-blender
python module I import the native library like so:from . import coreTo be clear, this is all working. I am able to execute the code from
core
module and it works fine.My problem is that, after importing the
core
module, I need a way to tell Python to "unload" the module so that Windows will allow me to delete the core.pyd
file.The reason I need to be able to do this is because
arsenal-blender
is a Blender plugin and Blender will try to delete the arsenal-blender
folder and everything in it when the plugin is uninstalled. The issue is that Blender, and its Python instance, is still running and the core.pyd
file is still open in the Python interpreter, so Windows will not allow me to delete the file.Is there any way for me to get the Python interpreter to release that file so that it can be deleted?
This is only a problem on Windows because Unix is able to simply "unlink" the file while Python is still using it.