Eu me lembro de um problema como esse porque eu tinha um test.pyc no mesmo diretório, e o interpretador estava usando em vez do original interpretado (test.py). Talvez seja uma pista para você.
estou tendo um script python
#!/usr/bin/env python
no topo do meu script? Segue-se a permissão que eu tinha definido
-rwxr-xr-x 1 user1 user2 6423 Nov 15 15:12 test
Eu tentei executar o script como user1 ./test , o que me deu permissão negada?
quando eu faço
whoami mostra user1 e umask é 0022, user1 tem bash como seu shell padrão
$python test (funciona bem)
Alguma ideia?
Eu me lembro de um problema como esse porque eu tinha um test.pyc no mesmo diretório, e o interpretador estava usando em vez do original interpretado (test.py). Talvez seja uma pista para você.
Quando você menciona #!/usr/bin/env python na primeira linha, ele procura por python em $PATH .
Digite which python e verifique se o caminho da saída é adicionado a $PATH . Se não adicionar,
export PATH="$PATH:/usr/local/bin/python" Para mais informações sobre como configurar a variável PATH, consulte esta página
Eu nunca nunca use nomes como test como meu scriptname. Da mesma forma, para nomes simples como time , date , parser , etc, a menos que em um pacote com importações absolutas, e mesmo assim é uma prática ruim. É muito provável que esses nomes interfiram nos módulos instalados ou em outros scripts / pacotes em seu diretório de trabalho e / ou caminho.
Conclusão: verifique se você não tem uma pasta chamada test no mesmo diretório.