Quote Originally Posted by J. T. B. View Post
My main concern is how to protect my software from being "cracked", meaning stolen and redistributed.
With Python there is not much you can do to prevent someone getting at the source — it's an interpreted language, so the source must be there to work. Packagers may include the Python bytecode (.pyc) files instead but in this case it's still trivially reversible (and so editable).

If you want to stop casual copying I would just go with some kind of licensing system (e.g. Paddle) to handle payments, license codes, etc. and validate during startup (or every now and then). Most people aren't going to know/spend the time hacking around this, and more complex solutions are going to give diminishing returns — is it worth stopping 1% of users from pirating vs. spending that time on developing your application.

The best protection against piracy is making your software easily available and for a reasonable price.

Can you share your ideas?