Есть куча разных инструментов, чтобы можно было решить эту задачу. К сожалению, все неидеальны. Простое приложение собирают нормально, как более сложная вещь - так приходится попотеть.
Статья как собирал Python 3 + PyQt5 -
https://habrahabr.ru/post/264233/
Получилось нормальное кросплатформенное приложение, писалось на маке, нормально работает на винде. Очень просто для пользователя - запускаешь 1 файл, он сам распаковывается во временную папку и работает. Можно сделать инсталлер, чтобы он установился в систему и запускался как обычная программа. Но это было не нужно.