Skip to content

mac 13.0上出现问题 #252

Open
Open

Description

@alex404notfound

错误
发生了一个错误。请在启动Anki时按住「Shift」键临时禁用插件加载。 如仅在插件启用时出错,请使用「工具」>「插件」功能禁用部分插件后重启Anki, 请重复上述步骤直至找到引起错误的插件。 找到引起错误的插件后,请反馈给插件作者。 调试信息:
Anki 2.1.54 (b6a7760c) Python 3.9.7 Qt 6.3.1 PyQt 6.3.1
Platform: Mac 13.0
Flags: frz=True ao=True sv=2
Add-ons, last update check: 2022-08-23 11:04:56
相关插件:⁨Fast Word Query Multi-threaded queries for words from local or web dictionaries⁩

Caught exception:
Traceback (most recent call last):
File "/Users/404notfound/Library/Application Support/Anki2/addons21/1807206748/gui/foldermanager.py", line 89, in accept
self.save()
File "/Users/404notfound/Library/Application Support/Anki2/addons21/1807206748/gui/foldermanager.py", line 99, in save
config.update(data)
File "/Users/404notfound/Library/Application Support/Anki2/addons21/1807206748/context.py", line 60, in update
with open(self.path, 'w', encoding='utf-8') as f:
OSError: [Errno 30] Read-only file system: '_fastwqcfg.json'

我用的词典文件是:
http://louischeung.top:225/mdict%E8%AF%8D%E5%85%B8%E5%8C%85/%E7%89%9B%E6%B4%A5%E9%AB%98%E9%98%B6%E8%8B%B1%E6%B1%89%E5%8F%8C%E8%A7%A3%E8%AF%8D%E5%85%B8%EF%BC%88%E7%AC%AC10%E7%89%88%EF%BC%89V3/

Activity

  1. Buliet commented on Oct 11, 2022

    @Buliet

    Mac M1 遇到同样的问题,临时解决
    修改文件:/Users/abc123/Library/Application Support/Anki2/addons21/1807206748/context.py
    其中 abc123 是我的用户名,需要改成你自己的

    找到下面这一行,我的在文件 第 42 行
    self.path = u'_' + self._CONFIG_FILENAME

    改成下面这样
    self.path = os.environ.get("HOME") + u'/Library/Application Support/Anki2/' + os.environ.get("USER") + u'/collection.media/' + u'_' + self._CONFIG_FILENAME

  2. Buliet commented on Oct 11, 2022

    @Buliet

    另外 还遇到 录入后不能正常播放音频,查了下发现是文件不在对应的文件夹,每次需要手动调整下
    用的 LDOCE6.mdd 和 LDOCE6.mdx
    故 临时解决
    修改文件:/Users/abc123/Library/Application Support/Anki2/addons21/1807206748/service/dict/LDOCE6.py
    同样,路径中的用户名需要改成自己的

    找到下面这段,我的在文件 第 47 行 - 第 57 行,整段覆盖后,重新

    def _fld_voice(self, html, voice):
        """获取发音字段"""
        for regexp in LANG_TO_REGEXPS[voice]:
            match = regexp.search(html)
            if match:
                val = '/' + match.group(1)
                name = get_hex_name('mdx-'+self.unique.lower(), val, 'mp3')
                tmpfname = os.environ.get("HOME") + u'/Library/Application Support/Anki2/' + os.environ.get("USER") + u'/collection.media/' + name
                # name = self.save_file(val, name)
                tmpfname = self.save_file(val, tmpfname)
                if tmpfname:
                # if name:
                    return self.get_anki_label(name, 'audio')
        return ''
    
  3. samon127 commented on Oct 26, 2022

    @samon127

    另外 还遇到 录入后不能正常播放音频,查了下发现是文件不在对应的文件夹,每次需要手动调整下 用的 LDOCE6.mdd 和 LDOCE6.mdx 故 临时解决 修改文件:/Users/abc123/Library/Application Support/Anki2/addons21/1807206748/service/dict/LDOCE6.py 同样,路径中的用户名需要改成自己的

    找到下面这段,我的在文件 第 47 行 - 第 57 行,整段覆盖后,重新

    def _fld_voice(self, html, voice):
        """获取发音字段"""
        for regexp in LANG_TO_REGEXPS[voice]:
            match = regexp.search(html)
            if match:
                val = '/' + match.group(1)
                name = get_hex_name('mdx-'+self.unique.lower(), val, 'mp3')
                tmpfname = os.environ.get("HOME") + u'/Library/Application Support/Anki2/' + os.environ.get("USER") + u'/collection.media/' + name
                # name = self.save_file(val, name)
                tmpfname = self.save_file(val, tmpfname)
                if tmpfname:
                # if name:
                    return self.get_anki_label(name, 'audio')
        return ''
    

    I use Youdao, here is my fix in /Users/abc123/Library/Application Support/Anki2/addons21/1807206748/service/dict/youdao.py:

        def fld_american_audio(self):
            audio_url = u'http://dict.youdao.com/dictvoice?audio={}&type=2'.format(self.quote_word)
            if youdao_download_mp3:
                filename = get_hex_name(self.unique.lower(), audio_url, 'mp3')
                
                tmpfname = os.environ.get("HOME") + u'/Library/Application Support/Anki2/User 1/' + u'/collection.media/' + filename
                tmpfname = self.download(audio_url, tmpfname)
                if tmpfname:
                    return self.get_anki_label(filename, 'audio')
    
                # if os.path.exists(filename) or self.download(audio_url, filename):
                #    return self.get_anki_label(filename, 'audio')
            return audio_url```
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions