This vignette describes the three different ways to initialize the R session’s connection to Python using the rMIDAS package as well as reticulate.
rMIDAS relies on Python to run the MIDAS imputation algorithm.
Currently, Python versions from 3.6 to 3.10 are supported. For most
users, the default settings in rMIDAS will be
if Python has been initialized. The first time you call
rMIDAS after installation, you will be prompted on
whether to set up the Python environment and dependencies
If the automatic setup fails or you want to set up your Python environment manually, you can do this using the next option.
Note: If you are using rMIDAS in headless mode (for example using Amazon AWS), the automatic setup will not execute. In this instance you need to set up the Python environment and its dependencies manually. Please refer to our Running rMIDAS on a server instance vignette for additional help.
If the automatic setup returns an error or you wish to use a specific
Python binary on your system, you can use the
set_python_env() function in rMIDAS,
providing an exact path to your chosen Python binary:
set_python_env() you can also set a virtualenv or
On the rMIDAS GitHub
repository you can also find an environment file
rmidas-env.yml) which can be used to initialise a new
conda environment that contains Python 3.8 and all required
Once you have downloaded this file, in your console navigate to the download directory and run:
Then, prior to training a MIDAS model, make sure to load this environment in R:
Note: reticulate only allows you to set a
Python binary once per R session, so if you wish to switch to a
different Python binary, or have already run
convert(), you will need to restart or terminate R prior to
If you desire more granular control of the R-Python interface, it is
possible to use reticulate’s in-built Python
configuration tools. Since these commands are outside of
rMIDAS, you must also manually call
midas_setup() after configuring your Python install,
As with Option 2, reticulate only allows you to set
a Python binary once per R session. If you wish to switch to a different
Python binary, or have already run
convert(), you will need to restart R prior to changing
Python version and then call
Sometimes the above three options may fail due to system configuration issues. Here we note a few common issues and fixes.
Macs used to come with Python 2.7 pre-installed between macOS versions 10.8 and 12.3. If you are using a Mac, reticulate may be defaulting to Python 2.7 which is not supported by rMIDAS. If this is the case you will have to configure the R session to use a Python 3 binary, as in option 2 above, by running:
If this returns an error, it’s likely reticulate
cannot find a Python environment related to the binary. In which case we
recommend restarting the R session and creating a
virtualenv that points to your desired Python 3 binary, as