【问题标题】:How to make a Python script runs as trivial linux command with Distutils?如何使用 Distutils 使 Python 脚本作为简单的 linux 命令运行?
【发布时间】:2013-01-15 11:12:28
【问题描述】:

我需要将 python 模块作为简单的 Linux 命令运行,而不用担心文件的位置。我可以使用 Distutils 吗?

具体说明我需要什么。用户应该进行简单的安装并能够使用它:

python setup.py install
mymodule --arg value

怎么做?

【问题讨论】:

    标签: python linux terminal command


    【解决方案1】:

    如果您在setup() 中指定脚本列表,distutils 会自动将它们安装到适当的目录中:

    from distutils.core import setup
    
    setup(
        name='somemodule',
        scripts=['mymodule']
    )
    

    请注意,此处的mymodule 需要是具有该名称的可运行python 脚本;它可能不应该是您的实际模块,而是在必要时导入您的模块。

    【讨论】:

      【解决方案2】:

      如果您希望能够通过仅指定其名称来运行命令,则需要将其安装在PATH 环境变量中列出的目录中。对于用户程序,通常的位置是/bin/usr/bin/usr/local/bin 也很常见)。

      因此,请设置您的软件包以在其中一个位置安装您的脚本。但是,这需要root 权限。

      如果您希望能够在没有root 权限的情况下进行安装,另一种方法是确保脚本的目录列在PATH 变量中。

      【讨论】:

      • 如何从 setup.py 添加脚本路径到PATH
      • 如果您想使用root 权限进行安装,您可以按照 Wooble 建议的方式进行安装(setup.py 将默认为标准系统目录,这很可能已经在PATH 中)。
      最近更新 更多