synced with upstream workshop, added python check in portable script.