我需要将 python 模块作为简单的 Linux 命令运行,而不用担心文件的位置。我可以用 Distutils 做吗?
具体到我需要什么。用户应该进行简单的安装并能够使用它:
python setup.py install
mymodule --arg value
怎么做?
如果您在 中指定脚本列表setup()
,distutils 将自动将它们安装到适当的目录中:
from distutils.core import setup
setup(
name='somemodule',
scripts=['mymodule']
)
请注意,mymodule
对于您的示例,此处需要是具有该名称的可运行 python 脚本;它可能不应该是您的实际模块,而是在必要时导入您的模块。
如果您希望能够通过仅指定其名称来运行命令,则需要将其安装在PATH
环境变量中列出的目录中。对于用户程序,通常的位置是/bin
, /usr/bin
(/usr/local/bin
也很常见)。
因此,设置您的软件包以将您的脚本安装在这些位置之一。但是,这将需要root
特权。
如果您希望能够在没有root
特权的情况下进行安装,另一种方法是确保脚本的目录在PATH
变量中列出。