Existe apenas um arquivo, my_script.py . Fazer um simples chmod +x NÃO "acaba com dois arquivos chamados my_script.py " (qual seria o segundo my_script.py ?).
Como o Python é uma linguagem interpretada, convém considerar o tamanho do interpretador python e as bibliotecas dinâmicas e bibliotecas interpretadas que ele usa.
Quando a chamada do sistema execve (consulte man 2 execve ) perceber que my_script.py é executável (tem o x bit definido) e começa com " #!<interpreter> ", ela executa <interpreter> my_script.py ( interpreter > é provavelmente /usr/bin/python no seu caso).
Então, você pode simplesmente mv my_script.py my_script . Ao contrário do outro sistema operacional, os nomes de arquivos Unix / Linux NÃO governam como os arquivos são executados.