Подтвердить что ты не робот

Как запустить python script без ввода "python..."

Я хочу запустить python script без явного вызова "python" каждый раз в моей оболочке. Я попытался добавить shebang #!/Path/to/python, но это, похоже, не работает. Кто-нибудь знает об этом? Большое спасибо.

4b9b3361

Ответ 1

Вы должны добавить shebang:

#!/usr/bin/env python

Затем выполните исполняемый файл script:

chmod +x foo

Затем вы можете запускать его, как и любой другой исполняемый файл:

./foo

И записка от Homer6: если вы редактируете файл из окон и вызывают его на Linux, вы можете запустить в загадочную ошибку "Нет такого файла или каталога". Это связано с тем, что строки линий являются CRLF вместо LF. Если вы конвертируете их в LF, script будет выполняться так, как ожидалось. Notepad ++ > View > Показать символы > Показать конец строки, чтобы показать символы EOL. И Notepad ++ > Edit > EOL Conversion > Unix Format для преобразования всех строк в LF. Кроме того, вы можете использовать инструмент dos2unix (dos2unix foo.py), который присутствует на большинстве систем Linux.

Ответ 2

  • Добавьте строку вверху вашего script:

    #! /usr/bin/env python
    
  • Переименуйте script с script_name.py на script_name
  • выполнить script исполняемый файл: chmod +x script_name

Строка вверх выбирает тот же python, который вы получаете при вводе питона в приглашении. Вы также можете указать прямой путь:

#!/opt/python/3.6/bin/python

Ответ 3

Это действительно не относится к вашим личным скриптам, но поскольку вы цитируете beets, обратите внимание, что также можно автоматизировать это действие, когда вы распространяете свои пакеты, благодаря setuptools entry_point.
Поэтому, если вы распространяете пакет типа myModule и хотите, чтобы функция main_function() была доступна, набрав mymodulescript в консоли, вы, вероятно, добавили бы что-то вроде этого в ваш файл setup.py:

setup(
    # your other arguments ..
    entry_points={
        'console_scripts': [
            'mymodulescript = myModule:main_function'
        ]
    }
)

Ответ 4

Убедитесь, что вы можете запускать /path/to/python на своем терминале. И убедитесь, что вы предоставили разрешение на выполнение для вашего файла python. Вы можете дать разрешение на файл с помощью

chmod +x mypythonfile.py