Row*_*aag 1 python pip python-3.x pyenchant enchant
我在运行导入附魔库的 python 文件时遇到问题。我已经使用以下命令安装了 enchant 模块:
$ pip install -U pyenchant
> Requirement already up-to-date: pyenchant in /usr/lib/python3.4/site-packages
Run Code Online (Sandbox Code Playgroud)
$ cat /etc/*-release
CentOS Linux release 7.2.1511 (Core)
$ cat ~/.zshrc
...
export PYTHONPATH=/usr/lib/python3.4/site-packages
alias py="python3"
alias pip="pip3"
...
$ py --version
Python 3.4.3
$ pip --version
pip 8.1.1 from /usr/lib/python3.4/site-packages (python 3.4)
$ echo $PYTHONPATH
/usr/lib/python3.4/site-packages
$ ls -al /usr/lib/python3.4/site-packages | grep enchant
drwxr-xr-x 5 root root 4096 13 apr 13:56 enchant
drwxr-xr-x 2 root root 4096 13 apr 13:56 pyenchant-1.6.6.dist-info
$ yum list installed | grep python-enchant
((nothing))
Run Code Online (Sandbox Code Playgroud)
$ cat ~/diskchall.py
import enchant
dictionary = enchant.Dict("en_US")
...
Run Code Online (Sandbox Code Playgroud)
$ py ~/diskchall.py
Traceback (most recent call last):
File "/root/diskchall.py", line 1, in <module>
import enchant
File "/usr/lib/python3.4/site-packages/enchant/__init__.py", line 92, in <module>
from enchant import _enchant as _e
File "/usr/lib/python3.4/site-packages/enchant/_enchant.py", line 143, in <module>
raise ImportError(msg)
ImportError: The 'enchant' C library was not found. Please install it via your OS package manager, or use a pre-built binary wheel from PyPI.
Run Code Online (Sandbox Code Playgroud)
在 El Capitan 上做了几乎相同的步骤,但是在运行时它给了我一个 TypeError。
通过_enchant.py
按照此问题的建议更改文件来修复。
这个提交是从2014 年开始的,而且仍然没有制作 Pip 回购,这真是太遗憾了。
看起来您至少缺少一个“附魔”C 库的依赖项。它被称为 libenchant 或 enchant。python 模块是这个库的一个包装器,所以你需要这个库来使用这个包装器。要查看可用的内容,请尝试:
yum whatprovides '*enchant*'
Run Code Online (Sandbox Code Playgroud)
你的命令
yum list installed | grep python-enchant
Run Code Online (Sandbox Code Playgroud)
当您使用 pip 而不是 yum 安装它时,不会显示 python-enchant。而是尝试:
pip freeze | grep enchant
Run Code Online (Sandbox Code Playgroud)
可以在此处看到 python-enchant 构建的依赖项列表注意 enchant >= 1.5.0(有时称为 libenchant)的要求
在 RedHat 上,一个简单的“yum whatprovides enchant”就可以了:
yum whatprovides enchant
...
Repo : rhel6-base-x86_64
...
1:enchant-1.5.0-4.el6.i686 : An Enchanting Spell Checking Library
Repo : rhel6-base-x86_64
...
1:enchant-1.5.0-5.el6.i686 : An Enchanting Spell Checking Library
Repo : rhel6-base-x86_64
...
1:enchant-1.5.0-5.el6.x86_64 : An Enchanting Spell Checking Library
Repo : rhel6-base-x86_64
...
Run Code Online (Sandbox Code Playgroud)
安装它:
yum install enchant
Run Code Online (Sandbox Code Playgroud)