У меня есть сценарий Python
#!/usr/bin/env python
в верхней части моего сценария? Следующее - это разрешение, которое я установил
-rwxr-xr-x 1 user1 user2 6423 Nov 15 15:12 test
Я пытался выполнить сценарий от имени пользователя ./test
, но мне было отказано в разрешении?
Когда я сделал
whoami
он показывает user1 и umask 0022, user1 имеет bash в качестве оболочки по умолчанию
$python test
(работает нормально)
Есть идеи ??
Когда вы упоминаете #!/usr/bin/env python
в первой строке, он ищет python из $PATH
.
Введите which python
и проверьте, добавлен ли путь от выхода к $PATH
. Если нет, добавьте его.
export PATH="$PATH:/usr/local/bin/python"
Для получения дополнительной информации о настройке переменной PATH см. Эту страницу
Я помню такую проблему, потому что у меня был test.pyc в том же каталоге, и интерпретатор использовал его вместо исходного интерпретируемого (test.py). Может быть, это повод для вас.
Я никогда никогда использую имена как test
в качестве моего имени сценария. Аналогично для простых имен, таких как time
, date
, parser
и т. Д., За исключением случаев, когда они находятся в пакете с абсолютным импортом, и даже в этом случае это плохая практика. Слишком вероятно, что эти имена будут мешать либо установленным модулям, либо другим скриптам / пакетам в вашем рабочем каталоге и / или пути.
Вывод: проверьте, нет ли в этом каталоге папки с именем test
.