Anki(SRS软件)插件包/模块



我正在为SRS Anki(2.1x(编写我自己的附加组件。

我的脚本在Anki之外运行,但我想从Anki中的工具栏运行它,以便对Anki调用的卡执行操作。

我不断收到错误,说我正在导入的模块(如pygame(丢失了。

我已经做了Giorgan Borca Tasciuc在这里建议

并包括带有模块文件的文件夹和init.py文件以扫描文件夹。例如,我将文件夹"pygame"与表示插件脚本的文件夹放在同一文件夹中。两者在.中都有init.py文件

然而,它似乎总是找到一些未导入的模块。例如,现在它找不到内置的Python包"array"。

我还试图用我的插件脚本中的行来破解这个问题,比如:

sys.path.append('/Users/user/AnacondaProjects/Anki/')
sys.path.append('/Users/user/Library/Application%20Support/Anki2/addons21/playback/')
sys.path.append('/Users/user/Library/Application%20Support/Anki2/addons21/playback/pygame')
sys.path.append('/anaconda3/lib/python3.6/site-packages')

当然,我不必包含每个子文件使用的所有可能的模块。

我做错了什么?

非常感谢您的帮助。

根据文档:

标准模块

Anki只提供了运行该程序所需的标准模块——不包括Python的完整副本。因此,如果您需要使用Anki中未包含的标准模块,则需要将其与附加组件捆绑在一起。

现在,如何捆绑附加组件?文件上写着:

共享加载项

对于一个简单的单文件加载项,您可以上传.py文件。对于多文件加载项,请创建一个充当Python包的子文件夹,并创建一个导入该包的小.py文件。以日本支持插件为例,其结构如下:

japanese/file1.py
japanese/file2.py
japanese/__init__.py # can be empty; marks the folder as a package
japanese/<binary support files>
jp.py

要上传多文件加载项,请压缩文件夹和loader.py文件并上传zip。

因此,您应该将所需的模块放在支持文件夹中,然后从那里导入。类似于:

myaddon/pygame.zip
myaddon/__init__.py
ma.py

ma.py可以是一种配置和加载myaddon文件,__init__.py(myaddon本身(可以是from . import pygame

分享从bs4导入BeautifulSoup的体验。希望能帮助你。

下载beautifulsoup4源代码,解压缩代码并将"bs4"文件夹复制到Anki Add-On文件夹C:UsersAdminAppDataRoamingAnki2addons中。然后重新启动Anki。我的akPlugin.py脚本可以从bs4中找到BeautifulSoup。

λ ls -al addons
total 56
drwxr-xr-x 1 Admin 197121     0 Aug 30 09:12 ./
drwxr-xr-x 1 Admin 197121     0 Oct 22 18:28 ../
-rw-r--r-- 1 Admin 197121 37794 Jul 18 10:11 akPlugin.py
drwxr-xr-x 1 Admin 197121     0 Sep 29  2015 bs4/

最新更新