I would like to know if there is a way to reload modules imported into R via the reticulate
package, similar to the autoreload
extension for IPython. For example, suppose I am developing my own module locally, I might import it via
library(reticulate)
import_from_path("mypackage", "/path/to/package")
However, if I make code changes to mypackage
the only way I can think to reflect them is to restart R. This is consistent with normal Python behavior where modules cannot be reloaded. One workaround would be to source a file from the package in which I am making changes, i.e.
source_python("/path/to/package/file.py")
However, if file.py
is importing other files in the local package that are being changed than changes to those files will not be reflected.
It's possible by calling Python commands to reload:
For Python 2.7
> builtins <- import_builtins()
> builtins$reload(your_module)
For Python 3
> importlib <- import("importlib")
> importlib$reload(your_module)
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