Que erro aparece? Que versão do Python você está usando? Como está executando o programa?
Testei o mesmo código aqui e funcionou, então deve ser algum problema no modo como você está fazendo. Lembrando que, no Python, a tabulação é parte da sintaxe, então deve-se tomar muito cuidado com isso.
O código que testei é:
[php]#!/usr/bin/python
# import modules used here -- sys is a very standard one
import sys
# Gather our code in a main() function
def main():
print ('Hello there', sys.argv[1])
# Command line args are in sys.argv[1], sys.argv[2] ...
# sys.argv[0] is the script name itself and can be ignored
# Standard boilerplate to call the main() function to begin
# the program.
if __name__ == '__main__':
main()[/php]
Se você prestar atenção, vai ver que a única coisa que mudei foi a linha com a função print, onde adicionei parênteses. Isso porque, aparentemente, no Python 3 (que é o que usei para teste) essa função requer o uso dos parênteses. Fora isso, é o mesmo código.
Note que, para este código executar, você precisa adicionar um parâmetro na chamada ao arquivo hello.py, ou seja, a execução deve ser:
python hello.py UmNomeQualquer
E a saída será:
Hello there UmNomeQualquer
Se você omitir o parâmetro, o programa falhará porque ele depende do parâmetro e não trata a ausência dele.
Testei no Windows usando o Portable Python (http://portablepython.com/), que vem com o PyScripter, um editor que ajuda muito a testar esse tipo de coisa.
Abraço.