Eu não estou familiarizado com o ipaddr, então só posso responder em geral, com o título da sua pergunta como ponto de partida:
Olhando para o comando que você usa (no seu post), você não usa a extensão .py
. Se você não usá-lo em seu comando, você deve removê-lo do próprio script também (e torná-lo realmente executável). Eu olhei para o nome do script, é ipaddr * .py *.
E: se você quiser invocar o script fora de $ PATH, você terá que adicionar o caminho em seu comando também.
retomada:
Execução de um script fora de $ PATH:
Invocando um script com extensão de idioma - > nome do script deve incluir extensão:
python /path/script_name.py (works if script is either executable or not)
/path/script_name.py (works only if script is executable, mind the shebang)
Invocando um script sem extensão de idioma:
/path/script_name (only if executable, mind the shebang)
A execução de um script em $ PATH pode ser feita com extensão de idioma, mas é considerada prática ruim, portanto - > nome do script não deve incluir extensão, execute-o pelo comando:
script_name (works only if executable, mind the shebang)
É claro que, antes de renomear ou mover um script para outro diretório, você deve certificar-se de que o script não está importando nada do diretório do qual você está movendo e o próprio script não é invocado por outros scripts.
Para torná-lo mais complicado: se o script fizer parte de uma estrutura mais abrangente em seu próprio diretório, mas você ainda quiser invocá-lo separadamente por seu nome, poderá criar um link para o script em ~/bin
( ln-sf
).
Portanto, neste caso específico: mova o script para ~/bin
, torne-o executável, remova sua extensão de idioma, efetue logout e in, e execute-o pelo nome. Ou seja, se o arquivo é / seria um script executável, como sua pergunta sugere.