使用Django和PyEnchant:在共享主机上获取MemoryError,而不是在本地

2024-06-16 10:25:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在是Django和Python的初级用户,到目前为止,我在本地所做的任何事情一旦上传,都会立即在我的主机上运行。我的主机是由Hostmonster提供的。在

不过,我刚刚安装了PyEnchant。我用它来做基本的拼写检查和建议新单词。另外,“string”总是由“+”分隔的单词串。在

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 dev服务器,一切正常。在我的主机上我得到:

Django Version: 1.4

Exception Type: MemoryError

Exception Location: /home/user/python/lib/python2.7/ctypes/__init__.py in _reset_cache, line 279

它似乎是抛出错误后几步'从附魔进口Dict'。在

我猜这本词典太大了,不能储存在临时存储器里?在

你知道怎么解决这个问题吗?如果我问的是非常愚蠢的问题,或者是用一种非常愚蠢的方式,请对我从容不迫:)。在

如果我遗漏了任何重要的数据,那是因为我不知道它的重要性,所以请告诉我还有什么其他信息可以帮助解决这个问题(如果它可以在共享主机上解决的话)。在

提前谢谢你的帮助!在

编辑1:

使用SSH,我可以导入并使用PyEnchant:

^{pr2}$

这让我更加困惑,因为当我在我的问题中使用“MemoryError”这个词时,我没有幸避免它。在

编辑2:

还是搞不清楚。如果我在任何模块中执行“import enchant”,似乎会导致MemoryError,但我可以通过远程shell和python解释器使用“import enchant”。在

编辑3:

尽管如此,经过几天的谷歌搜索和尝试,我还是无法让这个记忆体消失。以前有人看过这个吗?我想我的主机可能没有提供足够的内存来加载PyEnchant导入?有没有办法改变一个模块使用内存的方式?在


Tags: djangoinimport编辑stringexception单词enchant
1条回答
网友
1楼 · 发布于 2024-06-16 10:25:04

在移动Django安装之后,我也遇到了同样的问题。问题是httpd(Apache)对数据库的访问。在我的例子中,它是Selinux,但是我假设一般的UNIX类型的文件权限会导致类似的问题。在本例中,它在Django服务器上运行得很好,但在我的本地Apache上却无法运行。在

  • 你的主机使用Linux吗?在
  • 你能运行Apache来帮助确定问题吗?在

相关问题 更多 >