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的目录中,通过input
mkdir bin
创build一个bin目录 - 将myscript.py添加到这个新创build的
bin
目录(并确保它是可执行的!) -
cd
再次进入包含setup.py的目录,并通过inputpython setup.py install
来安装整个python包 - 一旦安装了软件包,你应该可以在系统的任何地方运行myscript.py!
有两种方法可以从setuptools和PyPI基础架构中获得一个可用的命令行工具:
- “脚本”关键字参数
这允许命令行执行你想要的任何东西,它可以是一个Python脚本,一个shell脚本或者完全不同的东西。 - “console_scripts”入口点
这允许将Python函数(不是脚本!)直接注册为命令行可访问的工具。