首页 >>  正文

anki最新版

来源:baiyundou.net   日期:2024-07-04

作者:拉德布鲁赫信徒

引言

今天无意中翻出了早些年考研时候制作的那些卡片,感概颇多。当初也是被ankiweb服务器的龟速同步速度折磨的不轻。想想一晃眼也好些年过去了,这款软件在当时确实也是给予了我极大地帮助,眼瞅着考研在即,想着如果还能有考研的值友们看到这篇文章,拿来做做卡片背一背肖四肖八的内容也是极好的。

这篇文章没有太多功利性的内容,也默认看的朋友已经能够使用anki进行背诵学习,所以图片方面的内容几乎就是没有了。在此也特别想感谢当年帮助过我一位技术小哥,当初买的香橙派zero,伴随了我考研的始终。当初他一手帮我部署好拿来就用的,也没有收过我一分钱费用,虽然不知道您的名字且再也联系不到您,还是想表达一下深深的感谢。同时写这篇文章也是想在某种意义上帮助正在奋斗在考研战线上的朋友们。

关于linux方式的部署,主要借鉴了之前一位老哥的文章,并且获得了他的同意转载了这部分的内容(在此深表感谢)。关于docker的部分是依据github上面的内容整理归类所得。

需要注意的一点是,linux的部署方式应当是可以支持各类arm设备的,但是docker方式的部署作者已经标明只支持x86架构的设备。

1 ankisync同步服务器搭建

1.1 linux方式

1.1.1 安装 Python3.9 版本和 Git

经过测试,在python3.10环境下安装会报出如下错误:

Ignoring importlib-metadata: markers 'python_version >= "3.8" and python_version < "3.10"' don't match your environment

Ignoring zipp: markers 'python_version >= "3.8" and python_version < "3.10"' don't match your environment

因此,推测该服务的运行依赖的就是python3.9,因此为了保障服务的成功部署,还是得安装python3.9的版本。

ubuntu安装python3.9

sudo apt-get install software-properties-common -y  

sudo add-apt-repository ppa:deadsnakes/ppa  

sudo apt-get update  

sudo apt-get install python3.9

验证一下安装:

python3.9 --version

pip3.9 --version

需要注意的一点是,如果机器本身就是python3.9,那就无需指定python版本,在后续的指令中,按照示例使用python3即可,pip也是同理,示例如下:

python3 src/ankisyncctl.py adduser aspirantzhang

pip3 install wheel

如果设备本身的版本低于3.9或者高于3.9,那么所有与python相关的都要指定版本号:

python3.9 src/ankisyncctl.py adduser aspirantzhang

pip3.9 install wheel

以此类推。

安装git 

sudo apt update

sudo apt install git

验证git

git --version

如果成功显示,那么证明git已经安装成功。

1.1.2 安装pip

apt install python3-pip

1.1.3 使用pip安装wheel

wheel 这个模块貌似是 anki 同步服务器的一个安装基础,通过 pip 安装

pip3 install wheel

1.1.4. 在服务器中拉取最新版代码

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

1.1.5 安装依赖

cd anki-sync-server

pip3 install -r src/requirements.txt

 1.1.6 升级anki版本

pip3 install anki --upgrade

 1.1.7  处理配置文件

cp src/ankisyncd.conf src/ankisyncd/.

复制好配置文件后,可以对其进行配置

nano src/ankisyncd/ankisyncd.conf

 1.1.8  添加用户

这部分由于没有实测,因此借用了之前一位老哥的内容:

添加用户的脚本,默认被放在了 `src/ankisyncd_cli/ankisyncctl.py`,但是根据实测和 issue,该脚本在这里运行会出现问题,报一个找不到模块的错误。由于我不太会 python ,不清楚它的原理,只能暂时把它移动到 src 目录下,也就是上移一级。

mv src/ankisyncd_cli/ankisyncctl.py ./src/

然后运行它,替换为你的账号

python3 src/ankisyncctl.py adduser aspirantzhang

输入该账号的密码。

 1.1.9 开启同步服务器

进入 src 目录,以后台常驻模式方式运行同步服务器

cd src

nohup python3 -m ankisyncd >> anki.log 2>&1 &

注:运行日志在 src 目录下的 anki.log,可以通过 tail -f anki.log对它进行持续监测

测试进程:

ps -ef | grep anki

[user@server ~]$ ps -ef | grep anki

root  15330     1 0 Apr17 ?      00:00:00 sudo nohup python3.9 -m ankisyncd

root  15331 15330 0 Apr17 ?      00:00:06 python3.9 -m ankisyncd

user  40455 39452 0 14:18 pts/3  00:00:00 grep --color=auto anki

测试访问:浏览器直接访问你的 IP 和端口号,看能否打开。如果无法打开,等待很久后报错。应该查看运行日志,检查是否没有打开防火墙,或云服务器的安全组是否打开等问题。同时,也要注意下面的步骤。

 1.1.10 核对配置文件路径

查看一下 anki.log 的日志(tail -f anki.log),关注其中配置读取的位置

[xxxx]:INFO:ankisyncd:Loaded config from /usr/local/anki-sync-server/src/ankisyncd.conf

本文中的配置,在第7小节中,是将配置文件 ankisyncd.conf放入了 src/ankisyncd/里面,这也是官网的写法。

但是,实际运行中,可能它不这么读取。它可能读取的是 src下面的那个,所以要在日志中仔细查看。它读哪个,就改哪个。

 1.1.11 设置开启启动  

crontab -e

这一段由于无法识别,只能以图片的方式进行展示了。

命令解释:每次开启重启时,进入那个文件夹,召唤 nohup 命令在后台常驻,运行 ankisyncd,并将所有日志追加写入到 anki.log 中。

 1.2 docker方式

 1.2.1 docker-compose安装

这部分内容又是因为张大妈编辑器的问题无法输入,还望大家能够自行百度,在此只能贴图片。

添加可执行权限  

sudo chmod +x /usr/local/bin/docker-compose

测试安装结果  

docker-compose --version

 1.2.2 docker-compose方式部署

docker方式的部署比起linux方式更为容易,且一般情况下不容易出错。但是,与之相比的缺陷在于,只支持x86架构的设备。

 1.2.2.1 创建anki目录

cd /mnt

mkdir docker

cd docker/

mkdir anki

cd anki/

 1.2.2.2 创建docker-compose文件

nano docker-compose.yml

如果没有安装nano,那么补上下面这一步:

sudo apt install nano

然后输入如下内容:

version: "3"

services:

    anki-container:

        image: kuklinistvan/anki-sync-server:latest

        container_name: anki-container

        restart: always

        ports:

        - "27701:27701"

        volumes:

        - data:/app/data

volumes:

    data:

完成之后,ctrl+o之后ctrl+x

 1.2.2.3 创建容器

docker-compose up -d 

 1.2.2.4 重构镜像(可选)

make build-devops SERVICE="anki-sync-server";

 1.2.2.5 自定义内容

docker exec -it anki-container /bin/sh

/app/anki-sync-server  ./ankisyncctl.py --help

usage: ./ankisyncctl.py []

Commands:

  adduser - add a new user

  deluser - delete a user

  lsuser             - list users

  passwd   - change password of a user

/app/anki-sync-server  ./ankisyncctl.py adduser kuklinistvan

Enter password for kuklinistvan:

/app/anki-sync-server 

上述命令的使用方法:

第一步:进入容器

docker exec -it anki-container /bin/sh

第二步:输入命令

./ankisyncctl.py

 增加用户

adduser - add a new user

需要写上用户名,完整命令:

./ankisyncctl.py adduser name

其中,name就是你想设置的用户名,以下同理。

 删除用户

deluser - delete a user

 列出当前用户

lsuser             - list users

 修改密码

passwd   - change password of a user

 2 anki配置

 2.1 电脑端配置

安装后打开 anki 主界面,按 shift+ctrl+a 打开 Addon(或Tools菜单的Add-ons),选择右侧的 View Files

此时会打开 addons21 目录,新建目录 ankisyncd(实际这个目录名可以自己定,不一定非是这个)

新建文件名 __init__.py

根据anki不同版本,输入内容,注意替换你的 IP 和端口号,注意你是 https 还是 http。

 Anki 2.1.28 及更高

import os

addr = "http://127.0.0.1:27701/"  put your server address here

os.environ["SYNC_ENDPOINT"] = addr + "sync/"

os.environ["SYNC_ENDPOINT_MEDIA"] = addr + "msync/"

 Anki 2.1

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

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/"

 2.2 手机端配置

中文:设置 > 高级设置 >  自定义同步服务器

英文:Settings > Advanced > Custom sync server

同步地址 / Sync url:设置为你的ip和端口,必须要带前面的协议,如:

http://127.0.0.1:1234/

媒体文件同步地址 / Media sync url:设置为你的 ip 和端口,必须要带前面的协议,后面必须加 msync/,如

http://127.0.0.1:1234/msync/

这里的ip主要是你的设备的本地ip,如果有公网ip的话,就意味着可以随时随地的同步你的anki。

鉴于anki在通常状态下不会有特别大的内容,通常是以文字的形式进行制卡,因此可以使用云服务器。但是如果存有大量图片甚至视频形式的卡片的话,那么就建议采用本地同步的方式了。

3 结语

这篇文章在某种意义上,已经属于小众到了极致的东西。但是anki这种工具,本身就是适合短期以及中期突击记忆的神器,作为应付考试的一种工具,可以堪称神器,基本可以让你做到如同条件反射一般脱口而出知识。

最后的最后,还是按照老规矩贴出一些相关的产品(当然,本地化部署的话还是建议去海鲜市场淘一下j1800这种便宜的x86主机)。

","force_purephv":"0","gnid":"9cfea82e7cad4685f","goods_list":[{"goods_channel":"淘宝精选","goods_cover":"https://p0.ssl.img.360kuai.com/t01531bab00547d3aeb.jpg?size=600x600","goods_link":"https://go.smzdm.com/91a10ca57fc02628/ca_fz_0_0_0_0_0_0_0","goods_name":"CHUWI/驰为(LarkBoxPro)魔方迷你电脑小微型mini台式主机超轻便携HTPC工控HDMI影视4K输出客厅游戏会议电脑","goods_pos":1,"goods_price":"899"},{"goods_channel":"天猫精选","goods_cover":"https://p0.ssl.img.360kuai.com/t01fcf0b2d7e8e3a9cb.jpg?size=600x600","goods_link":"https://go.smzdm.com/9491a411d69b07c1/ca_fz_0_0_0_0_0_0_0","goods_name":"【阿里云自营首购】阿里云服务器ECS-S6虚拟云主机官方优惠大陆款","goods_pos":2,"goods_price":"393.6"},{"goods_channel":"天猫精选","goods_cover":"https://p0.ssl.img.360kuai.com/t01079e8fe72dd9fbeb.jpg?size=600x600","goods_link":"https://go.smzdm.com/9491a411d69b07c1/ca_fz_0_0_0_0_0_0_0","goods_name":"【阿里云自营首购】阿里云服务器ECS-S6虚拟云主机官方优惠大陆款","goods_pos":3,"goods_price":"393.6"}],"img_data":[{"flag":2,"img":[{"desc":"","height":"1333","title":"","url":"https://p0.ssl.img.360kuai.com/t0127c9248d2a25d8e2.jpg","width":"600"},{"desc":"","height":"1333","title":"","url":"https://p0.ssl.img.360kuai.com/t01fd1bd1330744cb17.jpg","width":"600"},{"desc":"","height":"1333","title":"","url":"https://p0.ssl.img.360kuai.com/t01629e3ceeb63f2931.jpg","width":"600"},{"desc":"","height":"1333","title":"","url":"https://p0.ssl.img.360kuai.com/t0123db291867d32fe0.jpg","width":"600"}]}],"original":0,"pat":"art_src_1,otherc,fts0,sts0","powerby":"hbase","pub_time":1676347936000,"pure":"","rawurl":"http://zm.news.so.com/faad05d1958fb11ff06f8c8c22bf62f1","redirect":0,"rptid":"9b18b7541b70c70d","s":"t","src":"什么值得买","tag":[{"clk":"keducation_1:linux","k":"linux","u":""}],"title":"捡垃圾之后怎么玩? 篇三:考研、考证党的神器anki的同步化方案——自建同步服务器

巫蓓纪3136ankidroid升级到2.0后,不喜欢白色界面,能变成夜间模式吗?我是手机版. -
姬葛钱18584673677 ______ 2.0是很早的版本的,现在都被淘汰了. 建议升级到2.3.6比较稳定,或者直接4.0以上版本,功能多很多.

巫蓓纪3136有ppc 版的anki吗?那里有下的?
姬葛钱18584673677 ______ lexun.com

巫蓓纪3136anki 安卓版如何左对齐显示文字 -
姬葛钱18584673677 ______ 用电脑版的ANKI打开想要对齐文字的词库,“编辑”--“卡片布局”--“模板”里有对齐选择项,设置好后把词库拷回Android设备.电脑上的设置在Android设备上也会生效

巫蓓纪3136华为C8860HONER怎么装软件?ANKI,安卓版记忆软件,要把安装程序下到手机的哪个文件夹吗?请详细说明. -
姬葛钱18584673677 ______ 这个软件我用过啊,你下载了这个应用程序后直接安装就好,然后从电脑上安装个anki,在电脑上导入词库,之后在手机上点同步就能用了.另外推荐你一个跟他差不多的 anymemo.

巫蓓纪3136考前复习Anki怎么设置每个单词都过一遍 -
姬葛钱18584673677 ______ 1, 首先可以用excel建立一个三栏的表格第一栏A 放单词或问题,第二栏空着,第三栏放释义或者答案这里 是用来排版的换行符,不是必须. 2, 然后另存或者直接复制到txt内保存为如下格式(UTF-8)此时音标和部分字符可能显示乱码,但不影响最终效果. 3, 在桌面版ANKI里导入这里可以选择卡片正反分界的符号,比如我喜欢用@或者空格.导入的txt文档示例卡片的显示效果如下

巫蓓纪3136手机版的anki不能选择多个用户吗 -
姬葛钱18584673677 ______ 手机一个,不能进行群中使用的,具体多个用户来说,他们还是用一个正确的一个选择,或者其他比较好

巫蓓纪3136关于Anki安卓版TTS语音合成进去就提示”没有可用的文字转语音(TTS)语言“请问怎么解决?我希望可以TTS合成英语发音的.. -
姬葛钱18584673677 ______[答案] 手机上anki不能用tts来读很多我喜欢的英汉双解的词库,比如:英语单词的奥秘,Gorgeou ...,如果是纯英英的词库,我的手机上试了我自己制作的英英词库,可以用tts来读.请问谁能帮忙看看,手机anki怎么用tts来读英汉双解的词库啊?

巫蓓纪3136安装使用Anki的插件Image Occlusin 2.0 报错用不了怎么办 -
姬葛钱18584673677 ______ 可靠的解决办法:我的笔记本win10,通过右键anki的桌面快捷方式,属性,在一栏地址后面输入-b “某盘:\某文件夹(不能是中文!)”这样做是为了重设anki插件的文件夹位置,报错的原因就是因为文件夹有非拉丁字母然后重新下载image occlusion就ok了

巫蓓纪3136anki手机版安卓,在校学生没电脑能用吗? -
姬葛钱18584673677 ______ 回答:苹果系统和安卓系统.苹果系统有很多东西不支持.安卓系统支持的东西比较多了.你可以去安卓系统操纵一下

巫蓓纪3136在吗 你的新编日语anki单词怎么找 -
姬葛钱18584673677 ______ 我的anki词库是自己制作的.新编日语全四册一共6067个单词.我一边学一边做了excel表格,把所有单词做好.(网上有新编单词表,但是错误很多,需要在此基础上校对修改很多.我学一课校对一课,积累起来的) 然后截取配套mp3中的单词,每个单词一个mp3.按照anki的规则导入就行.这样每个单词在anki里可以单独朗读.

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024