我有一个Python项目,它基本上是一组命令行脚本和一个帮助程序包。由于这些脚本有许多命令行选项,我决定为每个脚本创建一个手册页,并使用ronn(http://rtomayko.github.com/ronn/)在Markdown中编写手册并从中生成mdoc。
问题是:如何在基于distutils的项目中生成和安装手册页?
我提出了以下解决方案:创建一个简单的 install.sh 脚本,用于生成和安装手册页。我从重载的'install'命令调用此脚本并将指定的前缀传递给它...您可以在此处检查实际代码:http://github.com/novel/lc-tools。
我不太喜欢这个解决方案,因为简单的任务我必须添加一些hack来setup.py并实现一个shell脚本。此外,我使用$ {PREFIX} / share / man作为手册页路径,并且它对所有系统都不正确,例如FreeBSD似乎将第三方手册页安装到/ usr / local / man(即没有 share / )。
有更优雅的方法吗?
答案 0 :(得分:2)
你的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
答案 1 :(得分:2)
distutils不支持手册页。人们已经编写了扩展来支持它们,通常以自定义distutils命令的形式。例如,参见Ubuntu中的python-distutils-extra。
distutils2将支持安装手册页。