Защита софта на Python?
Вопрос вообще "как идентифицировать компьютер". И это нетривиально.
1. Получить MAC адрес сетевой карты и проверить его на вхождение в список. Простейший способ его получить - примерно такой:
import uuid
print(hex(uuid.getnode()))
* неясно, как поведет себя функция, если на компе несколько сетевых адаптеров. 
* смена сетевой карты сломает программу
* MAC адрес сетевой карты часто можно сменить
2. Можно попробовать использовать CPUID, например, так.
Но я без понятия, какие процессоры это поддерживают!
3. Можно разместить секретное значение в реестре целевых машин, и проверять его наличие.

Самая большая проблема - эту проверку может отломать любой, более-менее знакомый с языком.

Можешь использовать пакет типа pyarmor, он вроде предоставляет механизм создания "лицензий" и обфусцирует исходный код, чтобы его труднее было анализировать и изменить. Но и pyarmor тоже отламывается при желании.

Так что главный вопрос: а нафига?
Если нужна действительно зашита, в не создание ее видимости, то вот решение, но оно довольно тяжеловесное https://thales-sentinel.ru/protection/python/

Но предварительно лучше бы определиться с моделью угроз.