Самораспаковывающийся пакет Python Disutils

Привет, я уже некоторое время искал в сети, но, похоже, не могу найти ничего, что покрывает то, что мне нравится с использованием disutils.

Допустим, у меня есть пакет Python, зависящий от различных зависимостей. Я знаю, что могу использовать setup.py и disutils, чтобы настроить необходимые зависимости и установить их с помощью easy_install. Это здорово, но я хотел бы, чтобы мой пакет был извлечен в новый «каталог», например, «/ usr / local / share /», измените .bashrc, включив соответствующий путь, и chmod для «.py», чтобы разрешить выполнение с любого командного терминала.

Возможно ли это вообще с помощью disutils? Как уже упоминалось, я видел несколько вариантов создания исполняемых пакетов, таких как использование расширений .zip и некоторых команд командной строки kungfu (source), но я не могу найти способ достичь всего вышеперечисленного.

Я уже рассматривал этот вопрос / ответ StackOverflow, и он не полностью охватывает то, что я пытаюсь сделать. Он не объясняет, как распаковать в произвольное местоположение каталога.

Любые указатели были бы замечательными, пожалуйста.


person iNoob    schedule 25.03.2015    source источник
comment
Вы можете установить scripts аргумент ключевого слова в setuptools.setup в своем setup.py, чтобы справиться с этим за вас - см., Например, github.com/textbook/nr_stomp/blob/master/setup.py# L33   -  person jonrsharpe    schedule 25.03.2015
comment
@jonrsharpe, могу ли я создать сценарий в аргументе 'scripts', который выполняет изменения, которые мне нужны? cp в желаемый каталог, chmod file.py 755 (что угодно) и внесите соответствующие изменения в .bashrc?   -  person iNoob    schedule 25.03.2015
comment
Нет, аргумент scripts - это список сценариев, которые вы хотите установить для вас для доступа из командной строки. Например, если вы устанавливаете nr_stomp, он позволяет вызывать run_client.py create config.cfg из командной строки. Зачем вам нужно настраиваемое местоположение? Скрипт может быть просто очень тонкой точкой входа (опять же, см. Мой пример - github.com/textbook/nr_stomp/blob/master/scripts/run_client.py) в пакет где бы он ни был установлен, вам не нужно беспокоиться об этих деталях.   -  person jonrsharpe    schedule 25.03.2015