Я почти закончил разработку пакета Python, а также написал базовый setup.py с помощью distutils:
#!/usr/bin/env python
#@author: Prahlad Yeri
#@description: Small daemon to create a wifi hotspot on linux
#@license: MIT
import cli
#INSTALL IT
from distutils.core import setup
setup(name='hotspotd',
version='0.1',
description='Small daemon to create a wifi hotspot on linux',
license='MIT',
author='Prahlad Yeri',
author_email='[email protected]',
url='https://github.com/prahladyeri/hotspotd',
package_dir={'hotspotd': ''},
packages=['hotspotd'],
data_files=[('config',['run.dat'])],
)
#CONFIGURE IT
Теперь этот скрипт работает идеально, как я хочу. Он устанавливает необходимые файлы в папку с префиксом. Например, приведенная ниже команда:
sudo python setup.py install --prefix /opt
установит весь мой пакет в:
/opt/lib/python2.7/site-packages/hotspotd
Однако я хочу, чтобы основной исполняемый файл hotspotd.py был связан с соответствующим файлом в /usr/bin, например:
/usr/bin/hotspotd
Чтобы пользователь мог запустить мою программу, просто вызвав hotspotd start
вместо косвенного вызова через python.
Как я могу добиться этого, изменив setup.py? Если я просто напишу код копирования в конце после вызова setup(), он будет вызываться каждый раз. Я просто хочу, чтобы это было сделано, когда программа устанавливается.