本文通过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. vue项目中添加单元测试

    从网上找了很多例子关于单元测试,都是如何新建项目的时候的添加单元测试,用vue-cli中怎么添加,但是我的项目已经生成了,不能再一次重新初始化,这时如何添加单元测试,这里面遇到了好多坑,写在这里记录一 ...

  2. css3实现半圆和圆效果

    在css2中,如果需要失效一些圆角或者半圆等等效果,一般是要通过ps等软件来处理的,在CSS3中,则不需要了,只需要通过border-radius就可以实现,大大方便了开发的效率. 无论圆角.圆弧.实 ...

  3. Java 之 Response 发送验证码案例

    定义一个 Servlet 用来在内存中生成 二维码图片,并向浏览器页面输出. import javax.imageio.ImageIO; import javax.servlet.ServletExc ...

  4. 因改漏洞而引申了解的Cookie机制!

    近期因为修改漏洞:Appscan扫描漏洞:加密会话(SSL)Cookie中缺少Secure属性,而涉及到Cookie有关的知识,现结合该漏洞的修复过程和了解的cookie知识总结一下. 一.加密会话( ...

  5. Flask整合WebLoader 用于大附件拆分上传再合并

    博客:https://blog.csdn.net/jinixin/article/details/77545140 github:https://github.com/jinixin/upload-d ...

  6. 【RAC】 RAC For W2K8R2 安装--安装过程中碰到的问题(九)

    [RAC] RAC For W2K8R2 安装--安装过程中碰到的问题(九) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也 ...

  7. python(写入excel操作-xlwt模块)

    一.安装xlwt模块 pip install xlwt 二.excel写入操作 这种方式只能新增或者覆盖文件写入 import xlwt # 创建一个workbook 设置编码 workbook = ...

  8. Termux和Ubuntu建立ssh连接

    1 本机环境 Android:Termux v0.77 作为客户端 Linux:Ubuntu 19.10 作为服务器 两者处于同一局域网下 2 ssh安装 2.1 Termux pkg install ...

  9. OSPF但区域配置

    原理概述 实验内容 实验拓扑 实验编址 实验步骤1.基本配置配置完成后,使用ping命令检测 2.部署单区域OSPF网络使用命令ospf创建并运行OSPF 其中1是进程号,如果没有写明进程号,则默认为 ...

  10. Pthon魔术方法(Magic Methods)-上下文管理

    Pthon魔术方法(Magic Methods)-上下文管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.上下文管理方法 __enter__: 进入与此对象相关的上下文.如果 ...