Python - интерпретируемый, а не скомпилированный язык. Поэтому любая автономная программа, которую вы можете распространять, должна включать в себя весь интерпретатор и библиотеки, которые вы использовали. Это приведет к огромному размеру файла для одной программы. Кроме того, эта огромная установка не может быть использована для запуска других программ на Python. Единственно немного более сложное, но гораздо лучшее решение, чем это, - просто установить интерпретатор один раз и запустить с ним любую программу на python.
Я понимаю, что смысл вашего вопроса состоял в том, чтобы сделать автономный исполняемый файл, поэтому я знаю, что не отвечаю на него. Но неспособность создавать исполняемые автономные версии является одним из предостережений интерпретируемых языков. Тем не менее, фундаментальный момент здесь касается всей цели интерпретируемого языка, который представляет собой единый интерпретатор со всеми универсальными функциями, необходимыми для запуска любого кода Python (что теперь, к счастью, не должно быть дольше, чем нужно). Итак, вы видите, это на самом деле не предостережение, это было целиком интерпретируемых языков. Наконец, вы можете найти способ создать автономный исполняемый файл Python, который будет работать на компьютерах ваших друзей, но это разрушит всю структуру и идею интерпретируемого языка.