我有一个Python项目,它基本上是一组命令行脚本和一个帮助程序包。因为这些脚本有许多命令行选项,所以我决定为每个脚本创建一个手册页,并使用ronn (http://rtomayko.github.com/ronn/)用Markdown编写手册,并从手册中生成mdoc。
问题是:如何在基于distutils的项目中生成和安装手册页?
我想出了以下解决方案:创建一个简单的install.sh脚本来生成和安装手册页。我从重载的'install‘命令调用这个脚本,并将指定的前缀传递给它……你可以在这里查看实际的代码:http://github.com/novel/lc-tools。
我不太喜欢这个解决方案,因为对于简单的任务,我必须向setup.py添加一些技巧,并实现一个外壳脚本。此外,我使用${PREFIX}/share/man作为手册页路径,这并不适用于所有系统,例如FreeBSD似乎将第三方手册页安装到/usr/local/man (即无共享/)。
有没有更优雅的方法来做到这一点?
发布于 2010-09-14 20:07:35
你在setup.py上的小破解成功了……作为补充,您可以添加一个特殊的man_prefix选项,可以在设置时传递这些选项来更改man路径。
您可以这样做:
class lc_install(install):
description = "Custom Install Process"
user_options= install.user_options[:]
user_options.extend([('manprefix=', None, 'MAN Prefix Path')])
def initialize_options(self):
self.manprefix = None
install.initialize_options(self)
def finalize_options(self):
if self.manprefix is None :
self.manprefix = "DEFAULT MAN PREFIX PATH IF THE OPTION IS NOT SET"
install.finalize_options(self)
def run(self):
.... # Your run method
发布于 2011-10-09 18:15:09
distutils不支持手册页。人们已经编写了支持它们的扩展,通常是以自定义distutils命令的形式。参见来自Ubuntu的示例python-distutils-extra。
distutils2将支持安装手册页。
https://stackoverflow.com/questions/3657209
复制相似问题