我一直在使用 Quickly 制作一个程序 (jekyll-helper),不久前我还在向默认帮助页面添加一些内容。我测试了在通过命令运行程序时打开程序中的帮助页面quickly run
,帮助页面运行正常。
但是,当我使用命令为程序创建包quickly package
、安装包并运行安装的程序版本时,帮助页面无法正常工作。每当我通过菜单选项打开帮助页面时Help > Contents
,帮助页面都会弹出以下错误:
未找到文档
URI“ghelp:jekyll-helper”没有指向有效页面。
不幸的是,我不知道这个问题是什么时候开始的,因为我只是在运行安装的程序版本时才意识到这个问题的存在,那时我已经完成了帮助页面的工作一段时间了。
我进行了一些 Google 搜索,发现了一些其他人遇到的类似问题,但没有一个人遇到与我完全相同的问题。
我在 Ask Ubuntu 上发现了这个似乎相关的问题,使用 Quickly 进行编译时出现的问题。那个人遇到了类似的问题,他们通过运行能够获得与该问题相关的错误消息quickly package --verbose --extras
。所以我尝试运行该命令,并且包能够构建,但是我收到了几条错误消息。我在这里放了一份终端输出的副本:http://pastie.org/10214514。
写这个问题的人发现这是由于程序的长描述中有一个换行符造成的。但是,我在文件DistUtilsExtra.auto.setup
的部分中检查了我的程序信息setup.py
,长描述中没有换行符。而且他们的错误消息与我收到的相应消息有些不同。因此,我遇到的问题不太可能与其他人的问题的原因相同。
我还发现了这个有点相关的问题,打包时快速给出警告,无法识别setup.py~,但是这个问题似乎与我遇到的问题有些不同。此外,该问题是由 Gedit 创建的自动备份文件引起的,但是我使用 Atom 编辑源代码,它不会创建此类备份文件。
该程序的源代码在这里:https://github.com/ExcaliburZero/jekyll-helper
该如何解决这个问题?其原因是什么?
答案1
在网上做了一些研究后,我注意到程序的帮助页面通常使用诸如 之类的 URI 来定位help:ubuntu-help/index
。我将其与我的程序正在调用的 URI 进行了比较ghelp:jekyll-helper
,发现我的程序出于某种原因在“help”前面加了一个“g”。
我尝试yelp help:jekyll-helper
在终端中运行,它为我的程序调出了正确的帮助文件。因此帮助文件被打包了,只是没有被正确调用。
于是我查找了程序中所有“ghelp”的实例,结果找到了两个。一个在,jekyll_helper_lib/PreferencesDialog.py
另一个在jekyll_helper_lib/Window.py
。我将每个程序中的“ghelp”实例更改为“help”,然后重新打包程序quickly package --verbose --extras
(尽管我仍然收到一些警告消息)。我安装了新软件包并运行程序,然后帮助页面就可以正常工作了。
因此看起来,由于某种原因,对帮助页面的调用在查找的 URI 中有一个“g”字符,这阻止它找到帮助页面,因为帮助页面的正确 URI 开头不包含“g”。