In python, do you have to create dummy variables to train a model such as RandomForests?
The support is not there in scikit-learn (yet), no.  Other python packages for tree models do support categorical variables though, e.g. H2O's tree models and LightGBM (and in a different way, CatBoost).
Can you not just use categorical variables like in R where you can feed factor variables into the model?