我现在是 Django 和 Python 的初级用户,到目前为止,我在本地所做的任何事情都在上传后立即在我的主机上运行。我的主机由 Hostmonster 提供。
但是,我刚刚安装了 PyEnchant。我只使用它进行基本的拼写检查和建议新词。此外,“字符串”始终是由“+”分隔的单词字符串。
from enchant import Dict
def spellcheck(string):
spellcheck = Dict("en-GB")
suggestedword = []
for word in string.split('+'):
if len(word) > 2 and not spellcheck.check(word):
suggestedword.append(spellcheck.suggest(word)[0])
else:
suggestedword.append(word)
return suggestedword
在本地,使用 Django 开发服务器,一切正常。在我的主机上,我得到:
Django Version: 1.4
Exception Type: MemoryError
Exception Location: /home/user/python/lib/python2.7/ctypes/__init__.py in _reset_cache, line 279
在“从附魔导入字典”之后几步似乎抛出了错误。
我猜字典太大而无法存储在临时内存中?
知道如何解决这个问题吗?如果我在问一些非常愚蠢的问题,或者以非常愚蠢的方式问我的话,请放轻松:)。
如果我遗漏了任何重要数据,那是因为我不知道它很重要,所以请随时告诉我还有哪些其他信息可以帮助解决这个问题(如果可以在共享主机上解决)。
提前感谢您的帮助!
编辑1:
使用 SSH,我可以导入和使用 PyEnchant:
>>> import enchant
>>> spellcheck = enchant.Dict("en-GB")
>>> spellcheck.suggest('nmae')
['name', 'mane']
这让我更加困惑,因为当我在我的问题中使用它时,我没有运气避免'MemoryError'。
编辑2:
仍然无法弄清楚这一点。如果我在任何模块中执行“导入附魔”,它似乎会导致 MemoryError,但我可以通过远程 shell 和 python 解释器使用“导入附魔”。
编辑3:
尽管如此,经过几天的谷歌搜索和尝试,我无法让这个 MemoryError 消失。以前有人用“PyEnchant”看过这个吗?我在想我的主机可能没有提供足够的内存来加载 PyEnchant 导入?有没有办法改变模块使用内存的方式?