E' un discorso un po' complicato: i programmi possono essere closed source (quindi senza sorgenti) o open source, a pagamento oppure gratis.
Da notare ke un programma open source può benissimo essere a pagamento così cm un programma closed source può essere gratuito.

I programmi opensource vengono di solito rilasciati secondo delle licenze, che sceglie il creatore.
Esistono licenze molto restrittive, come la GPL (gnu public licence) ke, in sostanza, obbliga chi utilizza il programma come base per il suo programma a rilasciare anke quest'ultimo come opensource oppure altre + permissive cm la LGPL ke permette di sfruttare il programma x creare un software proprietario.

Python, come tutti o quasi i linguaggi, segue la seconda filosofia quindi anke se è opensource puoi farci quello ke vuoi, anke crearci un software closed source a pagamento.