setup.py并将文件添加到/ bin /

我无法弄清楚如何使setup.py添加脚本到用户的/bin/usr/bin或其他什么。

例如,我想添加一个myscript.py/usr/bin以便用户可以从任何目录调用myscript.py

Python文档在安装脚本部分下解释它。

脚本是包含Python源代码的文件,旨在从命令行启动。

考虑使用console_scripts

 from setuptools import setup setup(name='some-name', ... entry_points = { 'console_scripts': [ 'command-name = package.module:main_func_name', ], }, ) 

main_func_name是主模块中的主要function。 命令名是一个名字,它将被保存在/ usr / local / bin /(通常)

如果你愿意构build和安装整个Python包,这是我将如何去做:

  • 编辑setup.py中的setup()函数以包含名为scripts的参数,并将其参数设置为您希望从任何位置运行的文件的位置。 例如

setup(name='myproject',author='',author_email='',scripts=['bin/myscript.py'])

  • 在包含setup.py的目录中,通过inputmkdir bin创build一个bin目录
  • 将myscript.py添加到这个新创build的bin目录(并确保它是可执行的!)
  • cd再次进入包含setup.py的目录,并通过inputpython setup.py install来安装整个python包
  • 一旦安装了软件包,你应该可以在系统的任何地方运行myscript.py!

有两种方法可以从setuptools和PyPI基础架构中获得一个可用的命令行工具:

  1. “脚本”关键字参数
    这允许命令行执行你想要的任何东西,它可以是一个Python脚本,一个shell脚本或者完全不同的东西。
  2. “console_scripts”入口点
    这允许将Python函数(不是脚本!)直接注册为命令行可访问的工具。