Как запустить скрипт Python без ввода «Python ...» - PullRequest
37 голосов
/ 14 февраля 2011

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

Ответы [ 5 ]

97 голосов
/ 14 февраля 2011

Вы должны добавить шебанг:

#!/usr/bin/env python

Затем сделайте скрипт исполняемым:

chmod +x foo

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

./foo

И примечание от Homer6: если вы редактируете файл из windows и запускаете его в Linux, вы можете столкнуться с загадочной ошибкой «Нет такого файла или каталога».Это связано с тем, что окончание строк - это CRLF, а не LF.Если вы конвертируете их в LF, скрипт будет выполняться как положено.Блокнот ++> Вид> Показать символы> Показать конец строки, чтобы отобразить символы EOL.И Notepad ++> Правка> Преобразование EOL> Формат Unix для преобразования всех концов строк для использования LF.Кроме того, вы можете использовать инструмент dos2unix (dos2unix foo.py), который присутствует в большинстве систем Linux.

3 голосов
/ 11 сентября 2016

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

setup(
    # your other arguments ..
    entry_points={
        'console_scripts': [
            'mymodulescript = myModule:main_function'
        ]
    }
)
3 голосов
/ 11 сентября 2016
  1. Добавьте строку вверху вашего скрипта:

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

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

#!/opt/python/3.6/bin/python
2 голосов
/ 02 апреля 2018

Другим обходным решением может быть использование псевдонима, определенного в .bashrc:

, например, добавьте следующую строку в ваш файл .bachrc:

alias mypythonalias = "python mypyrhonfile.py"

введите в терминале:

source ~/.bashrc

и затем вы можете просто набрать:

mypythonalias

для запуска файла python.

1 голос
/ 14 февраля 2011

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

chmod +x mypythonfile.py
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...