Как заставить Python написать сценарий команды?

Я пытаюсь превратить сценарий Python в команду, например: ipaddr.py Google (http://code.google.com/p/ipaddr-py/). Я хочу смочь ввести ipaddr и это производит то, что я хочу. Действительно ли это возможно? Я попытался делать это исполняемым файлом с chmod +x, затем перемещение его к /bin и это все еще говорит:

No command 'ipaddr' found, did you mean:
 Command 'ipmaddr' from package 'net-tools' (main)
 Command 'ibaddr' from package 'infiniband-diags' (universe)
ipaddr: command not found
0
задан 16 April 2014 в 14:07

2 ответа

, Так как ipaddr.py библиотека для осмотра и управления IP-адресом, первая вещь, которую Вы захотите сделать, создают некоторые объекты. Можно использовать ipaddr для создания объектов из строк, целых чисел или других объектов ipaddr.

Проверка следующая страница Wiki для примеров:

http://code.google.com/p/ipaddr-py/wiki/Using3144

В зависимости от Ваших потребностей, устанавливая пакет Python от pypi в масштабе всей системы и создание сценария Python (чтобы позже вставить /usr/bin) являются, вероятно, наилучшим вариантом получить утилиту командной строки использование ipaddr.

2
ответ дан 8 October 2019 в 01:13

Я не знаком с ipaddr, таким образом, я могу только ответить в целом с заголовком Вашего вопроса как начальная точка:

Рассмотрение команды Вы используете (в Вашем сообщении), Вы не используете расширение .py. Если Вы не используете его в своей команде, необходимо удалить его из самого сценария также (и сделать его исполняемым файлом действительно). Я изучил название сценария, это - ipaddr*.py*.

И: если Вы хотите вызвать сценарий вне $PATH, необходимо будет добавить путь в команде также.

возобновление:

Выполнение сценария вне $PATH:

Вызов сценария с расширение языка-> название сценария должно включать расширение:

    python /path/script_name.py (works if script is either executable or not)
    /path/script_name.py (works only if script is executable, mind the shebang)

Вызов сценария без расширение языка:

    /path/script_name (only if executable, mind the shebang)

Выполнение сценария в $PATH можно сделать с расширением языка, но считают плохой практикой, таким образом-> название сценария не должно включать расширение, выполнять его командой:

    script_name (works only if executable, mind the shebang)

, Конечно, прежде чем Вы переименуете или переместите сценарий в другой каталог, необходимо удостовериться, что сценарий ничего не импортирует из каталога, откуда Вы перемещаете его, и сам сценарий не вызывается другими сценариями.

Для создания его более сложным: , если сценарий является частью более всесторонней структуры в ее собственном каталоге, но Вы все еще хотите вызвать его отдельно ее именем, можно создать ссылку на сценарий в ~/bin (ln-sf).

Так в данном случае: переместите сценарий в ~/bin, сделайте его исполняемым файлом, удалите его расширение языка, выйдите и зайдите и выполните его его именем. Таким образом, , если бы файл / был бы выполнимый сценарий, как Ваш вопрос предполагает.

2
ответ дан 8 October 2019 в 01:13

Другие вопросы по тегам:

Похожие вопросы: