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.