mac系统下修复第三方Python包bug
发现问题
今天在github上fork了CI 3.x的中文手册,按照README文档一步步进行Sphinx和相关工具的安装,最终build生成html版手册。操作到第6步执行`make html`的时候,抛出Python异常:
#这里省略了上面的输出信息
Exception occurred:
File "/Library/Python/2.7/site-packages/Sphinx-1.5-py2.7.egg/sphinx/environment/managers/toctree.py", line 273, in _entries_from_toctree
title = clean_astext(self.titles[ref])
AttributeError: 'Toctree' object has no attribute 'titles'
The full traceback has been saved in /var/folders/2x/b7_jzxyd1dj5cq7q41yr18s00000gn/T/sphinx-err-BF9qkA.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
make: *** [html] Error 1
显然问题出在sphinx库。必须要找到解决方案才能完成第6步。
解决方案
通过提示信息访问它的github issue页面,用第四行的错误信息(AttributeError: 'Toctree' object has no attribute 'titles')作为关键词搜索,搜到了一条反映这个问题的issue。这个问题在6天前被提出,并且在4天前被close,说明问题已经解决。
在评论列表中找到开发者的回复,根据他给的链接找到fix bug的commit,查看所做的修改,发现是将toctree.py文件第273行的
title = clean_astext(self.titles[ref])
这句改为
title = clean_astext(self.env.titles[ref])
这个修改刚好对应到产生异常信息的那句代码。于是根据异常信息找到toctree.py文件,将那行修改。
最后再次执行`make html`,执行成功。
总结反思
这次找解决方案的过程其实饶了很多弯路。做得比较差劲的地方有:
- 没有注意到issue的状态。出现了异常以后,根据异常信息很快就找到了关于这个bug的issue页面。评论列表中开发者回复说会在周末发布一个新的release,由于没有留意issue已经被close了,所以最开始并不知道已经有新的提交修复了bug。
- 没有注意到异常信息第二行已经给出了产生异常的文件,用搜索引擎和find命令找了好久。后来想到用easy_install命令重新安装Sphinx可能会将安装路径输出到终端,用这个方法果真找到了库的目录。(写这篇随笔的时候才发现错误信息里面已经告诉我文件的位置了。。。)
当然也有值得自我夸奖的地方:
- 看到开发者修复bug的提交后立即想到,在release出来以前我可以自己动手修复这个bug。因为Python是一门解释执行的语言,因此库代码一定是以源码的形式保存在某个目录下。
- 解决了问题就值得夸奖
mac系统下修复第三方Python包bug的更多相关文章
- mac系统下Eclipse + pydev配置python Interpreter
mac系统下Eclipse + pydev配置python Interpreter 之前都在windows下使用Eclipse + pydev 进行开发,未发现什么异常,最近对wxpy.itcha ...
- Mac系统下React Native环境搭建
这里记录一下在Mac系统下搭建React Native开发环境的过程: 1. 安装HomeBrew: /usr/bin/ruby -e "$(curl -fsSL https://raw.g ...
- 用anaconda的pip安装第三方python包的日志
用anaconda的pip安装第三方python包的日志 启动anaconda命令窗口: 开始> 所有程序> anaconda> anaconda prompt 会得到两行提示: D ...
- (转载)Mac系统下利用ADB命令连接android手机并进行文件操作
Mac系统下利用ADB命令连接android手机并进行文件操作 标签: Mac adb android 2016-03-14 10:09 5470人阅读 评论(1) 收藏 举报 分类: Androi ...
- mac系统下虚拟机parallels安装ubuntu 14.04
mac系统很棒,mac下的开发环境也很棒,但有时你还得需要ubuntu开发环境,比如进行嵌入式Linux交叉编译,使用Linaro toolchain… 其实mac系统下使用parallels虚拟机安 ...
- MAC系统下,删除.svn文件
MAC系统下,.svn文件是隐藏的. 如果项目是非export导出的,那么项目中会有很多的.svn文件. 如果项目的体积非常庞大,我们如何快速的批量删除.svn文件呢?下面是操作方法: 打开终端,cd ...
- Mac系统下使用VirtualBox虚拟机安装win7--第一步 安装vbox虚拟机
Mac系统下使用VirtualBox虚拟机安装win7操作步骤: 第一步 安装vbox虚拟机 1.先下载vbox,下载地址:: https://www.virtualbox.org/wiki/Down ...
- 曲线救国,解决Mac系统下,Android sdk下载失败的问题
Mac下翻_墙的问题 话说GFW屏蔽谷歌已经有一阵子了,最近打算在Mac系统下折腾个Android应用,备好了IDE,只欠SDK,无奈下载时因为GFW的缘故,总是失败,我心痛哉! 由于本人偏爱Mac系 ...
- Linux 系统下用源码包安装软件
Linux系统下用源码包安装软件 by:授客 QQ:1033553122 下载源码安装包,解压或者直接双击打开(如果有安装zip或rar等压缩/解压缩软件的话),查找相关的安装说明文件,一般是READ ...
随机推荐
- 50个常用sql语句 网上流行的学生选课表的例子
50个常用sql语句 建表: --学生表tblStudent(编号StuId.姓名StuName.年龄StuAge.性别StuSex) --课程表tblCourse(课程编号CourseId.课程名称 ...
- Linq2DB之研究和探索
1,对linq2db使用看法 最近在研究linq2db,用起来还不错,性能还不错的.之前也在博客园有些网友说用ado.net和depper写SQL语句,性能还要高.有时候牺牲点性能,为了提高开发效率, ...
- Beta冲刺! Day1 - 磨刀
Beta冲刺! Day1 - 磨刀 今日已完成 晨瑶:罗列Beta计划.和新人交接.任务安排 昭锡:无 永盛:服务器出现一些 mysql 的问题,伟鹏的爬取脚本没办法远程链接到服务器,在修 立强:学习 ...
- Java实现数据库的读写分离
引言 1.读写分离:可以通过Spring提供的AbstractRoutingDataSource类,重写determineCurrentLookupKey方法,实现动态切换数据源的功能:读写分离可以有 ...
- 单色液晶模块推荐LM6800
- linux命令之 df file fsck fuser
有非常多人说,网上非常多知识点都有了.为什么你还要在自己的博客中反复这些东西呢? 我想说的是.别人写的东西是别人理解的东西,同一时候也是别人学习过程的总结,对于自己来说.自己写自己的博客最基本的目的就 ...
- metamask源码学习-ui/index.js
The UI-即上图左下角metamask-ui部分,即其图形化界面 The MetaMask UI is essentially just a website that can be configu ...
- mysql对String类型的数字值排序
一.需求:根据月份分组,然后再根据月份排序 效果图 sql如下: SELECT ) number, date_format(created_at,'%c') date FROM ********* W ...
- cisco ospf
ospf配置:(Open Shortest Path First)PC0 and PC1 via Ospf to communicate. Network map as below.Environme ...
- 完整卸载 kUbuntu-desktop from Ubuntu 14.04 LTS系统 ubuntu14.04 LTS 64Bit
sudo apt-get remove libkde3support4 k3b-data ntrack-module-libnl-0 libkrosscore4 libgpgme++2 libqapt ...