在python包中包含一个脚本

时间:2014-10-30 13:02:18

标签: python packages

我开发了一个python包,目前包含可以在这些模块中找到的子包,模块和函数。现在,我有一个脚本,它使用包的某些元素(以及其他包),我想用包发送这个脚本。我们的目标是,在安装软件包之后,潜在用户可以简单地运行脚本并获得结果。

这样做的正确方法是什么?我可以简单地将脚本包含在包的树结构中,然后它将包含在发行版中。但是,反过来,该软件包将安装在用户通常不易被用户访问的目录中的框中。

2 个答案:

答案 0 :(得分:2)

如果您的软件包使用setuptools或类似软件进行分发,则可以使用scripts关键字和setuptools将其正确放置在PATH中。见Command Line Scripts

答案 1 :(得分:0)

Distutils支持安装脚本,但是将它们放在哪里供用户访问的问题是一个更复杂的问题(例如,Windows使用文件扩展名而不是shebangs而AFAIK没有设施将它们注册为命令)。与模块一起安装的脚本传统上使用__name__=='__main__'进行测试(如果它们是主程序),并且可以使用(例如)python -m SimpleHTTPServer从那里运行。