【发布时间】:2013-01-15 11:12:28
【问题描述】:
我需要将 python 模块作为简单的 Linux 命令运行,而不用担心文件的位置。我可以使用 Distutils 吗?
具体说明我需要什么。用户应该进行简单的安装并能够使用它:
python setup.py install
mymodule --arg value
怎么做?
【问题讨论】:
标签: python linux terminal command
我需要将 python 模块作为简单的 Linux 命令运行,而不用担心文件的位置。我可以使用 Distutils 吗?
具体说明我需要什么。用户应该进行简单的安装并能够使用它:
python setup.py install
mymodule --arg value
怎么做?
【问题讨论】:
标签: python linux terminal command
如果您在setup() 中指定脚本列表,distutils 会自动将它们安装到适当的目录中:
from distutils.core import setup
setup(
name='somemodule',
scripts=['mymodule']
)
请注意,此处的mymodule 需要是具有该名称的可运行python 脚本;它可能不应该是您的实际模块,而是在必要时导入您的模块。
【讨论】:
如果您希望能够通过仅指定其名称来运行命令,则需要将其安装在PATH 环境变量中列出的目录中。对于用户程序,通常的位置是/bin、/usr/bin(/usr/local/bin 也很常见)。
因此,请设置您的软件包以在其中一个位置安装您的脚本。但是,这需要root 权限。
如果您希望能够在没有root 权限的情况下进行安装,另一种方法是确保脚本的目录列在PATH 变量中。
【讨论】:
PATH?
root 权限进行安装,您可以按照 Wooble 建议的方式进行安装(setup.py 将默认为标准系统目录,这很可能已经在PATH 中)。