【问题标题】:Anki (SRS software) addon packages/modulesAnki(SRS 软件)插件包/模块
【发布时间】:2018-07-22 23:22:56
【问题描述】:

我正在为 SRS Anki (2.1x) 编写自己的插件。

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

我不断收到错误消息,提示我正在导入的模块(例如 pygame)丢失。

我已经按照 Giorgan Borca-Tasciuc 的建议 here

并将文件夹包含在模块文件和 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')

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

我做错了什么?

非常感谢您的帮助。

【问题讨论】:

    标签: python python-3.x anki


    【解决方案1】:

    根据the documentation

    标准模块

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

    现在,您如何捆绑附加组件? The documentation 说:

    分享插件

    对于一个简单的单文件插件,您可以上传 .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
    

    要上传多文件插件,请将文件夹和加载器 .py 文件压缩并上传。

    所以你应该把你需要的模块放在一个支持文件夹中,然后从那里导入它们。比如:

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

    ma.py 可以是一种配置和加载-myaddon 文件,__init__.pymyaddon 正确)可以是from . import pygame

    【讨论】:

    • 您好,我关注了 Anki 支持,但仍然出现上面列出的错误。我不太明白你的意思: ma.py 可以是一种 configure-and-load-myaddon 文件,而 init.py (myaddon 正确)可以来自 .导入 pygame。
    • @SebSilas 将您需要的模块制作成插件包的子模块。阅读the Python tutorial page on modules了解。
    • 我已经完成了所有这些,但无法让它发挥作用。我会尽快粘贴我的代码
    【解决方案2】:

    分享一个从 bs4 导入 BeautifulSoup 的经验。希望能帮到你。

    下载beautifulsoup4源码,解压后将“bs4”文件夹复制到Anki Add-On文件夹C:\Users\Admin\AppData\Roaming\Anki2\addons\。然后重启 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/
    

    【讨论】:

      猜你喜欢
      • 2022-08-14
      • 2021-05-18
      • 2010-10-26
      • 2013-04-25
      • 2010-11-15
      • 2012-07-27
      • 1970-01-01
      • 2018-12-29
      • 1970-01-01
      相关资源
      最近更新 更多