问题
I'm having trouble installing pyenchant on a MacbookPro running Lion. I've used homebrew and pip to install enchant and pyenchant
homebrew install enchant
pip install pyenchant
I've also downloaded an English dictionary to the following folder:
/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/enchant/share/enchant/myspell
-rw-r--r-- 1 mycomputer admin 75 Jun 6 13:34 README.txt
-rw-rw-rw-@ 1 mycomputer staff 1017 May 4 2007 README_en_US.txt
drwx------@ 2 mycomputer staff 68 Jun 6 13:38 en_US
-rw-rw-rw-@ 1 mycomputer staff 3045 May 4 2007 en_US.aff
-rw-rw-rw-@ 1 mycomputer staff 696131 May 4 2007 en_US.dic
However, when I try to use enchant, I get the following error.
>>> import enchant
>>> d = enchant.Dict('en_US')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/enchant/__init__.py", line 502, in __init__
self._switch_this(broker._request_dict_data(tag),broker)
File "/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/enchant/__init__.py", line 264, in _request_dict_data
self._raise_error(eStr % (tag,),DictNotFoundError)
File "/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/enchant/__init__.py", line 218, in _raise_error
raise eclass(default)
enchant.errors.DictNotFoundError: Dictionary for language 'en_US' could not be found
I'm guessing I don't have the dictionary files installed in the correct folder, but I don't know where else to install them.
Thanks.
回答1:
Enchant is 'lazy' and need backend support from aspell.
So, what you need to do is:
brew remove aspell
brew install aspell --lang=en
Then en dicts will be installed and so no need to download additional dicts.
回答2:
I also was able to solve by explicitly setting the parameter for the dictionary path. Don't have brew installed - am using mac ports. Had to manually download the oxt file from apache open office and extract the files from it (after renaming .oxt
to .zip
. Where are these default path values stored?
Python 2.7.1 (r271:86832, Jul 31 2011, 19:30:53)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import enchant
>>> d = enchant.Dict("en_US")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/pyenchant-1.6.5-py2.7.egg/enchant/__init__.py", line 502, in __init__
self._switch_this(broker._request_dict_data(tag),broker)
File "/Library/Python/2.7/site-packages/pyenchant-1.6.5-py2.7.egg/enchant/__init__.py", line 264,
in _request_dict_data
self._raise_error(eStr % (tag,),DictNotFoundError)
File "/Library/Python/2.7/site-packages/pyenchant-1.6.5-py2.7.egg/enchant/__init__.py", line 218, in _raise_error
raise eclass(default)
enchant.errors.DictNotFoundError: Dictionary for language 'en_US' could not be found
Now I apply the fix using my filesystem specifics:
>>> enchant.set_param("enchant.myspell.dictionary.path","/Library/Python/2.7/site-packages/pyenchant-1.6.5-py2.7.egg/enchant/share/enchant/myspell")
>>> d=enchant.Dict("en_US")
>>> d.check("enchant")
True
>>>
Seeing is believing - again - where is the default version of this path stored (I am a newby to Python and Eggs - coming from Java and Jars)
回答3:
I was able to solve this using the command:
enchant.set_param("enchant.myspell.dictionary.path", "/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/enchant/share/enchant/myspell")
Other people who had installed enchant using ports did not have this issue.
来源:https://stackoverflow.com/questions/10922546/pyenchant-cant-find-dictionary-file-on-mac-os-x