问题描述
在学习及工作中,我们通过 Zim 记录笔记、梳理知识,我们对 Zim 的依赖性比较强。在使用的过程中,我们也发现部分问题(Bug),我们也像社区提交 Issus 来反馈问题;
但是,Zim 终究是个开源项目,贡献者们都有自己的工作,大家维护项目的精力也是有限的。所以,为了能尽早的解决问题,我们决定参与到该项目中,来修复使用过程中遇到的问题;
该笔记将记录:我们研究 Zim 项目源码的过程(学习方法、架构设计、问题排查、调试技巧),并尝试解决相关使用问题(以获得更好的使用体验,这也是我们参与项目的动力);
解决方案
1)学习 Python 编程:该项目由 Python 语言开发,所以需要学会使用 Python 语言编程;
2)学习 Python 项目调试方法:
Address already in use / Listener did not start
问题描述
INFO: This is zim 0.65 WARNING: Could not find all icon sizes for the application icon Exception in thread Thread-1: Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner self.run() ...... File "/usr/lib/python2.7/socket.py", line 228, in meth return getattr(self._sock,name)(*args) error: [Errno 98] Address already in use 大学英语(一) pdf ERROR: Exception in main() Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/zim/main/init.py", line 741, in main ZIM_APPLICATION.run(*argv[1:]) ...... File "/usr/local/lib/python2.7/dist-packages/zim/main/ipc.py", line 97, in start_listening raise AssertionError, 'Listener did not start' AssertionError: Listener did not start
问题原因
强制结束 Zim 进程;
解决方法
删除 /tmp/zim-root 文件夹。https://answers.launchpad.net/zim/+question/236195
ImportError: No module named gobject
问题描述
from zim.signals import SignalEmitter, SIGNAL_AFTER File "/usr/local/lib/python2.7/dist-packages/zim/signals.py", line 8, in <module> import gobject ImportError: No module named gobject
问题原因
缺少 python-gobject 模块
解决方案
# Ubuntu 16.04 LTS apt-get install python-gobject-2 # 其他的发行版也是类似的名称
ImportError: No module named gtk
问题描述
File "/usr/local/lib/python2.7/dist-packages/zim/main/init.py", line 572, in _run_cmd self._run_main_loop(cmd) File "/usr/local/lib/python2.7/dist-packages/zim/main/init.py", line 579, in _run_main_loop import gtk, gobject ImportError: No module named gtk
问题原因
缺少 python-gtk2 模块
解决方案
# Ubuntu 16.04 LTS apt-get install python-gtk2 # 其他的发行版也是类似的
You must not use 8-bit bytestrings…
问题描述
ProgrammingError: You must not use 8-bit bytestrings unless you use a text_facto ry that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings.
问题原因
运行 Zim 内置的 WebServer 时,访问“首页”时产生了该问题。这里的“首页”指的是 Zim 默认的一个索引页面(此时的 URL 中没有任何页面参数,形如`http://localhost:8080/’%EF%BC%89%E3%80%82%E5%B9%B6%E4%B8%94%E6%88%91%E4%BB%AC%E5%9C%A8%E9%A1%B5%E9%9D%A2%E4%B8%AD%E4%BD%BF%E7%94%A8%E4%BA%86%E5%A6%82%E4%B8%8B%E7%9A%84%E6%A8%A1%E6%9D%BF%E4%BB%A3%E7%A0%81%E6%89%8D%E8%A7%A6%E5%8F%91%E4%BA%86%E8%BF%99%E4%B8%AA%E9%97%AE%E9%A2%98%EF%BC%9A
<title> [% FOR page IN pages %] [% page.title %] [% END %] - www.k4nz.com </title>
在文件名中,存在 Unicode 字符;
解决方案
找到文件名中的那个中文字符;