使用pip安装Python软件包手册页

12

我在/opt/python-2.7.6中维护着一个自定义编译的Python安装。我希望man页面被安装在share/man中。我已经使用pip安装了几个库(numpyscipymatplotlibsympy),但不确定它们是否应该附带man页面。

现在,我安装了pygments。它附带了一个名为pygmentize的二进制文件,已正确安装在bin中。

旁路: 我查看了Debian软件包python-pygments中的文件,发现它附带了一个man页面:

$ apt-file list python-pygments
...
/usr/share/man/man1/pygmentize.1.gz
...

回到主题:我不想使用apt-get安装python-pygments,因为它将与系统Python关联。我希望继续使用pip来维护我的自定义Python安装。使用.bashrcshare/man目录添加到MANPATH环境变量应该很容易。

export MANPATH=/opt/python-2.7.6/share/man:$MANPATH

问题:我该如何使用pip同时安装Python库和man手册?


1
我认为pygmentize(1)的手册实际上并不随源代码包一起提供;Debian在其.deb软件包中添加了许多命令的手册页。 - Fred Foo
5
@larsmans,你认为我应该向Python社区提出这个问题吗?即在使用pip安装库时是否应包含man页? - Kit
2
Python库通常没有很多的man页面,只有偶尔会发现有人为脚本包含了man页面。大多数Python文档都在代码本身中,可以通过shell CLI命令'pydoc'访问(在Python解释器内部,您可以使用help(obj|module)来获取相同的基本文档)。一些软件包使用Sphinx进行高级文档编写(我认为scipy、numpy和matplotlib都是这样做的,这就是它们网页文档生成的方式)。 - synthesizerpatel
1个回答

7

该软件包没有手册,请点击此处。这是Debian政策的要求,每个程序都需要添加一个手册页。因此,该软件包会为您安装一个。

另外

如果您维护自己的软件包,可以在setup.py中使用指令data_files

setup(
    ...
    data_files = [('man/man1', ['path/to/your/manpage.1/'])],
)

如果您想要自动为您的程序创建一个 man 手册(如果您正在使用 argparse,请查看我的软件包man-utils)。


1
或许还可以指向 https://linux.die.net/man/1/pygmentize,该网站记录了该 man 页面是在 Author 部分专门为 Debian 创建的。 - tripleee
很遗憾,我无法使用它打包软件包。尽管文件明显存在且存储在正确的位置,但它无法找到该文件。你知道我可以改变什么吗? 错误:无法复制'nuseradd.1':不存在或不是常规文件。 - user19094271
请在上游存储库中打开一个问题,并提供完整的堆栈跟踪,可以吗? - oz123
感谢 data_files 选项。我本来想点赞的,但在问题下面看到 @synthesizerpatel 的评论后,我认为手册页不应该与 Python 包一起分发,因为 pip 没有通用的安装方法。另一个观点是,如果有系统包可用,最好使用系统包(而不是 pip)进行安装。因此,为每个系统准备一个专用的包!我认为这是最干净的做法。 - Yaroslav Nikitenko
如果您想从源目录安装man页面,而不是使用pip install -e .,请在源代码根目录中使用pip install . - Constantin Hong

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接