本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/anki_and_anki_server

首先吐槽,anki作为老牌软件,国内资料并不多。

虽然html的卡片显示和python的插件式开发上看比较适合程序员,但从各种配置上感觉程序员用户量并不大。

因此,想深度使用准备折腾。

简单使用

  • 淘制作好的卡片,导入
  • 卡片可以套模板更美观(添加时的Cards选项,支持html)
  • 插件里的awesome TTS很多人推荐但速度略慢
  • 添加单词可以用Word Query

官方文档https://apps.ankiweb.net/docs/manual.html

插件编写文档https://apps.ankiweb.net/docs/addons.html

一些坑

删除卡片不会删除对应的媒体文件,需要点击 check media 后手动删除。

anki server 的安装

官网的速度爆表,而且有数据安全问题,因此官网给出了自建anki server的解决方案。

百度上的大多使用 https://github.com/dsnopek/anki-sync-server ,可以基于pip2和python2直接安装,个人在基于Arch的linux下感觉坑多,在linux上的anki 2.1.9连不上上面python2的服务器(bug解决一个又出一个),更建议使用基于python3的fork项目:https://github.com/tsudoko/anki-sync-server

基于python3的仓库

github上的readme已经写得比较清楚,下面的搬运点大概。

1、clone 仓库

git clone https://github.com/tsudoko/anki-sync-server.git

2、安装anki或anki-bundled相关的库

直接使用包管理器安装 sudo pacman -S anki

如果包管理器里没有anki(如debian),也可以用pip安装anki-bundled相关的库

 $ git submodule update --init  # anki-bundled已经加入为submodule,可以先更新
$ cd anki-bundled
$ pip install -r requirements.txt # 安装相关的库

3、安装webob

pip install webob

4、修改 ankisyncd.conf 文件

文件中保存了主要的配置,主要改端口,默认端口一般也就能用。

5、创建用户

./ankisyncctl.py adduser <username>

6、启动服务器

python -m ankisyncd

客户端配置

android anki 在高级设置里填上ip和端口就行。

anki桌面版2.1.x 修改了添加插件方式。在插件文件夹下新建一个新的文件夹(官方插件命名都是数字方便更新,用字母也行),然后在其下新建一个文件__init__.py,加入以下内容。

import anki.sync, anki.hooks, aqt

addr = "http://127.0.0.1:27701/" # put your server address here
anki.sync.SYNC_BASE = "%s" + addr
def resetHostNum():
aqt.mw.pm.profile['hostNum'] = None
anki.hooks.addHook("profileLoaded", resetHostNum)

anki桌面版2.0 直接在插件文件夹下新建一个.py文件(如ankisyncd.py),加入以下内容。

import anki.sync

addr = "http://127.0.0.1:27701/" # put your server address here
anki.sync.SYNC_BASE = addr
anki.sync.SYNC_MEDIA_BASE = addr + "msync/"

基于python2的server

百度上搜到的差不多都是这种,可能出各种bug,不怎么建议折腾,列一下大概的折腾步骤和踩坑。

简直就是个没人测试的系统!各种莫名奇妙的bug需要调。

好不容易装好了,局域网下卡片数量较多时(4000)速度也不怎么样….

debian 系统安装稍正常

easy_install ankiserver  # 为什么不用pip?  因为会有莫名奇妙的错误!!
mkdir ankiserver_data # anki server的数据目录
cd ankiserver_data
cp /usr/lib/python2.7/site-packages/AnkiServer-2.0.6-py2.7.egg/examples/example.ini ./production.ini # 复制配置文件,如有必要可以改改端口一类的 ankiserverctl adduser test # 添加用户
ankiserverctl debug # debug模式启动 (为什么是debug,你猜一次成功的概率?)

如果此时显示了正常启动然后手机能连上就算幸运了。

踩过的坑:

  • 虽然python3的ankiserver在pip仓库里有,但还是不试为好。
  • 要用 easy_install 代替pip(小心找不到文件一个个改路径)
  • 装server的系统上最好不要装anki客户端(anki使用的python3莫名奇妙会被python2的server调用….估计是anki在/usr/share文件夹下,/usr/share又是PATH的目录,如果非要装就把/usr/share/anki改个名字吧,虚拟环境都上了还是跳到anki客户端的python3代码上报错)
  • andriod手机登录时显示服务器和手机时间差了5s,可能折腾一下ntp就行吧
  • 系统编码需要设置成utf-8(默认用英语没碰到这问题)

安卓手机使用正常,但是anki 2.1.9 linux桌面版连不上。

anki的使用以及anki server的配置的更多相关文章

  1. VisualSVN Server的配置和使用方法(转)

    1.为什么要用VisualSVN Server,而不用Subversion? 回答: 因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Serve ...

  2. VisualSVN Server的配置和使用方法 图文

    转载 http://www.jb51.net/article/17365.htm VisualSVN Server是免费的,而VisualSVN是收费的.VisualSVN是SVN的客户端,和Visu ...

  3. SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件

    SQL SERVER 2008配置Database Mail –用SQL  数据库发邮件 https://blogs.msdn.microsoft.com/apgcdsd/2011/06/28/sql ...

  4. [转载]部署Office Web Apps Server并配置其与SharePoint 2013的集成

    Office Web Apps Server 是新的 Office 服务器产品,它提供 Word.PowerPoint.Excel 和 OneNote 的基于浏览器的版本.单个 Office Web ...

  5. 部署Office Web Apps Server并配置其与SharePoint 2013的集成

    部署Office Web Apps Server并配置其与SharePoint 2013的集成   Office Web Apps Server 是新的 Office 服务器产品,它提供 Word.P ...

  6. Ubuntu Server如何配置SFTP

    SH File Transfer Protocol是一个比普通FTP更为安全的文件传输协议.(参考资料:http://en.wikipedia.org/wiki/SSH_File_Transfer_P ...

  7. [转]ubuntu server上网配置

    [转]ubuntu server上网配置 http://blog.sina.com.cn/s/blog_6c9d65a101011pyt.html 今天我的ubuntu server上不去网了,所以重 ...

  8. Tomcat中server.xml配置及Context的配置说明

    server.xml配置简介         下面是这个文件中的基本配置信息,更具体的配置信息见tomcat的文档         server:         port     指定一个端口,这个 ...

  9. Chapter 1 Securing Your Server and Network(6):为SQL Server访问配置防火墙

    原文:Chapter 1 Securing Your Server and Network(6):为SQL Server访问配置防火墙 原文出处:http://blog.csdn.net/dba_hu ...

随机推荐

  1. 记录screen屏幕日志

    1.建立日志存放目录#mkdir /var/log/screen/ 2.修改配置文件,在末尾添加配置内容#vi /etc/screenrclogfile /var/log/screen/%t.log ...

  2. ASP.Net Jquery 随机验证码 文本框判断

    // 登陆验证 $(function () { var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'a', 'B' ...

  3. 英语foteball足球历史

    foteball n.足球 现代足球 参见:现代足球 现代足球起源地是在英格兰.传说在11世纪,英格兰与丹麦之间有过一场战争,战争结束后,英格兰人在清理战争废墟时发现一个丹麦入侵者的头骨,出于愤恨,他 ...

  4. ES读写索引内幕分析

    一.简介 ES中的索引都进行分片,每个分片都会保存多个副本.这些副本称为复制组,在添加或删除索引时必须同步副本.如果不这样,从不同的副本中读取的索引可能截然不同.保持分片副本同步并从中提供读取的过程被 ...

  5. Linq Left Join;linq左连接 (转载)

    来源 https://www.cnblogs.com/xinjian/archive/2010/11/17/1879959.html 准备一些测试数据,如下: use Test Create tabl ...

  6. JavaScript: 详解正则表达式之三

    在上两篇文章中博主介绍了JavaScript中的正则常用方法和正则修饰符,今天准备聊一聊元字符和高级匹配的相关内容. 首先说说元字符,想必大家也都比较熟悉了,JS中的元字符有以下几种: / \ | . ...

  7. centos在线安装ffmpeg

    简介: 跨平台解决方案,用于记录,转换和流式传输音频和视频 挂载yum源 https://rpmfusion.org/Configuration RHEL 7 or compatible like C ...

  8. zsh of kali

    首先安装zsh: # apt-get update # apt-get install zsh -y 然后直接使用仓库脚本: # sh -c "$(wget https://raw.gith ...

  9. Pure C static coding analysis tools

    Cppcheck - A tool for static C/C++ code analysiscppcheck.sourceforge.netCppcheck is a static analysi ...

  10. ThreadLocal(在一个线程中共享数据)

    ThreadLocal 在"事务传递Connection"参数案例中,我们必须传递Connection对象,才可以完成整个事务操作.如果不传递参数,是否可以完成?在JDK中给我们提 ...