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

我不知道如何使myscript.py向用户的/usr/binmyscript.py或其他内容添加脚本。

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

Aaron Yodaiken asked 2019-11-08T12:51:00Z
4个解决方案
55 votes

考虑使用main_func_name

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

其中main_func_name是主模块中的主要功能。command-name是将其保存在/ usr / local / bin /中的名称(通常)

DataGreed answered 2019-11-08T12:51:58Z
27 votes

Python文档在“安装脚本”部分下对其进行了说明。

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

setup(...,
      scripts=['scripts/xmlproc_parse', 'scripts/xmlproc_val']
)
miku answered 2019-11-08T12:51:25Z
15 votes

有两种方法可以从setuptools和PyPI基础结构中获取有效的命令行工具:

  1. “脚本”关键字参数
    这允许命令行执行所需的所有内容,它可以是Python脚本,shell脚本或完全不同的东西。
  2. “ console_scripts”入口点
    这样就可以将Python函数(不是脚本!)直接注册为命令行可访问工具。
Danny Lessio answered 2019-11-08T12:53:01Z
13 votes

如果您愿意构建和安装整个python软件包,这就是我的处理方式:

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

cd

  • 在包含setup.py的目录中,通过键入cd创建bin目录
  • 将myscript.py添加到此新创建的cd目录(并确保其可执行!)
  • cd再次进入包含setup.py的目录,并通过键入python setup.py install安装整个python软件包
  • 安装软件包后,您应该可以在系统上的任何位置运行myscript.py!
wh1tney answered 2019-11-08T12:54:16Z
translate from https://stackoverflow.com:/questions/4840182/setup-py-and-adding-file-to-bin