Я пытаюсь превратить сценарий 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
, Так как ipaddr.py библиотека для осмотра и управления IP-адресом, первая вещь, которую Вы захотите сделать, создают некоторые объекты. Можно использовать ipaddr для создания объектов из строк, целых чисел или других объектов ipaddr.
Проверка следующая страница Wiki для примеров:
http://code.google.com/p/ipaddr-py/wiki/Using3144
В зависимости от Ваших потребностей, устанавливая пакет Python от pypi в масштабе всей системы и создание сценария Python (чтобы позже вставить /usr/bin
) являются, вероятно, наилучшим вариантом получить утилиту командной строки использование ipaddr.
Я не знаком с 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
, сделайте его исполняемым файлом, удалите его расширение языка, выйдите и зайдите и выполните его его именем. Таким образом, , если бы файл / был бы выполнимый сценарий, как Ваш вопрос предполагает.