Как установить пакет в / usr / local / bin? - PullRequest
0 голосов
/ 21 мая 2019

Структура файла:

  • MYTOOL.sh
  • main.py
  • setup.py

Моя цель - запустить MYTOOL.sh, когда пользователь наберет: $ MYTOOL.

В моем файле setup.py есть следующее:

class PostInstallCommand(install):
    def run(self):
        subprocess.call("echo source " + getSetuptoolsScriptDir() + "/MYTOOL.sh > /usr/local/bin/MYTOOL && chmod +x /usr/local/bin/MYTOOL", shell=True)
        install.run(self)

def getSetuptoolsScriptDir():
    dist = Distribution({'cmdclass': {'install': OnlyGetScriptPath}})
    dist.dry_run = True
    dist.parse_config_files()
    command = dist.get_command_obj('install')
    command.ensure_finalized()
    command.run()
    return dist.install_scripts

setuptools.setup(
    # ... other settings ...
    scripts=['MYTOOL.sh'],
    cmdclass={
        'install': PostInstallCommand,
    }
)

MYTOOL.sh:

#!/bin/bash
PYTHON_VERSION=$(python -c 'import sys; print(".".join(map(str, sys.version_info[0:1])))')
if [ $PYTHON_VERSION -eq 3 ]
then
    python main.py "$@"
else
    python3 main.py "$@"
fi

PS:
Я нашел этот вопрос, но он кажется без ответа.

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