setup.py - 安装后将模块符号链接到 /usr/bin

2023-12-20

我几乎完成了 python 包的开发,并且还使用 distutils 编写了基本的 setup.py:

#!/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] /cdn-cgi/l/email-protection',
    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() 调用之后编写复制代码,那么每次都会调用它。我只想在安装程序时完成它。


只需使用scripts参数如下:

#!/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] /cdn-cgi/l/email-protection',
    url='https://github.com/prahladyeri/hotspotd',
    package_dir={'hotspotd': ''},
    packages=['hotspotd'],
    data_files=[('config',['run.dat'])],
    scripts=["scriptname"], # Here the Magic Happens
    )

#CONFIGURE IT

现在文件scriptname将被复制到/usr/bin/scriptnameshebang 将被调用的 python 版本替换setup.py脚本。所以明智地编写你的脚本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

setup.py - 安装后将模块符号链接到 /usr/bin 的相关文章

随机推荐