The short answer is that you should put that file in your ~/.vim/plugin directory rather than in your ~/.vim/ftplugin directory. If you do that, it won't matter what the base name of the file is, but the suffix must be ".vim".
According to the header of your file, it can be sourced at any time and will not affect any files other than Python files. So it is safe to put the file in your ~/.vim/plugin directory where it will be sourced every time you start Vim.
There are three reasons putting py.vimrc in your ~/.vim/ftplugin directory does not work. The first is that the suffix must be ".vim". The second is that the base name of the file must be the same as Vim's name for the file type. For Python, the file type is "python". Therefore, the name of a filetype plugin for Python must be "python.vim". The third reason is that the autocommands in that file are read when the file is sourced, which would be when you open a Python source file (if everything else was correct). Their commands are then ready to be executed the next time you open a Python file.
Lastly, don't change the 'tabstop' setting to 4. Even if you use an indentation of 4, set 'shiftwidth' to 4 and maybe 'softtabstop' to 4, but leave 'tabstop' at 8. The reason is that the last time I checked, the Python interpreter assumes tab stops of 8. If you're careful and consistent, you can get away with using other 'tabstop' values, but I think it's risky.