Anki python脚本:缺少多个模块

Posted

技术标签:

【中文标题】Anki python脚本:缺少多个模块【英文标题】:Anki python scripting: Multiple modules missing 【发布时间】:2018-12-29 21:56:07 【问题描述】:

我正在尝试按照https://www.juliensobczak.com/tell/2016/12/26/anki-scripting.html 的教程进行操作

我正在设置“listcards.py”基本脚本,克隆 anki 并安装虚拟环境以及 anki/requirements.txt 文件中的要求。

但是,当我从名为“listcards.py”的教程中运行脚本时,我收到一个通知,即找不到模块“anki.sched”。 ("ModuleNotFoundError: No module named 'anki.sched')

虽然我可以 pip 安装每个包,但我觉得这些包丢失一定有一个根本原因 - 有没有办法让 python 自动拉入命名模块,即使它没有预先安装以 node.js 如何自动安装引用的依赖项的方式,这样我就不必手动安装每个丢失的包?

【问题讨论】:

我知道这已经有一段时间了,但你有没有解决这个问题?我也有类似的问题 【参考方案1】:

我遇到了同样的问题。 anki.sched 是包含在您克隆的 anki 存储库中的一个包,因此它确实存在于您的计算机上。您将无法使用 pip 安装它。

我的解决方案是编写您在sys.path.append 中克隆的anki 存储库的绝对路径,而不是相对路径。例如,如果您的脚本存在于 /Users/anki/scripts 并且您克隆的 anki 存储库存在于 /Users/anki/anki 中,请在导入 anki 模块之前将其写入您的脚本中:

sys.path.append("/Users/anki/anki")

而不是这个(这是教程中提供的):

sys.path.append("../anki")

我不能 100% 确定为什么后者会失败,但是由于相对引用,Anki 一定是在错误的位置寻找 anki.sched 模块。

【讨论】:

【参考方案2】:

我所做的,我知道这可能不是正确的方法,就是简单地清除根 anki 文件夹并将所有应用程序脚本复制到其中,然后导入工作。

【讨论】:

以上是关于Anki python脚本:缺少多个模块的主要内容,如果未能解决你的问题,请参考以下文章

anki+mindmanager+python

用java调用python脚本,单独的python脚本可以运行,但是在java里面调用的时候告知缺少模块。怎么破?

Pytho之Django

Python脚本代码运行正常,但是使用pyinstaller打包成执行文件后运行提示缺少模块?

python 基础 模块

python---OS模块