首页 > 解决方案 > 无法安装模式包(OS Bash 终端)

问题描述

我无法安装 Pattern 包。请提供帮助!

lucy$ pip3 install pattern
Collecting pattern
  Using cached https://files.pythonhosted.org/packages/1e/07/b0e61b6c818ed4b6145fe01d1c341223aa6cfbc3928538ad1f2b890924a3/Pattern-3.6.0.tar.gz
Collecting future
  Using cached https://files.pythonhosted.org/packages/45/0b/38b06fd9b92dc2b68d58b75f900e97884c45bedd2ff83203d933cf5851c9/future-0.18.2.tar.gz
Collecting backports.csv
  Using cached https://files.pythonhosted.org/packages/8e/26/a6bd68f13e0f38fbb643d6e497fc3462be83a0b6c4d43425c78bb51a7291/backports.csv-1.0.7-py2.py3-none-any.whl
Collecting mysqlclient
  Using cached https://files.pythonhosted.org/packages/d0/97/7326248ac8d5049968bf4ec708a5d3d4806e412a42e74160d7f266a3e03a/mysqlclient-1.4.6.tar.gz
    ERROR: Command errored out with exit status 1:
     command: /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/dg/3dc4wnvn2ll0bz4p781nw1jc0000gn/T/pip-install-v1dttx0k/mysqlclient/setup.py'"'"'; __file__='"'"'/private/var/folders/dg/3dc4wnvn2ll0bz4p781nw1jc0000gn/T/pip-install-v1dttx0k/mysqlclient/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/dg/3dc4wnvn2ll0bz4p781nw1jc0000gn/T/pip-install-v1dttx0k/mysqlclient/pip-egg-info
         cwd: /private/var/folders/dg/3dc4wnvn2ll0bz4p781nw1jc0000gn/T/pip-install-v1dttx0k/mysqlclient/
    Complete output (12 lines):
    /bin/sh: mysql_config: command not found
    /bin/sh: mariadb_config: command not found
    /bin/sh: mysql_config: command not found
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/dg/3dc4wnvn2ll0bz4p781nw1jc0000gn/T/pip-install-v1dttx0k/mysqlclient/setup.py", line 16, in <module>
        metadata, options = get_config()
      File "/private/var/folders/dg/3dc4wnvn2ll0bz4p781nw1jc0000gn/T/pip-install-v1dttx0k/mysqlclient/setup_posix.py", line 61, in get_config
        libs = mysql_config("libs")
      File "/private/var/folders/dg/3dc4wnvn2ll0bz4p781nw1jc0000gn/T/pip-install-v1dttx0k/mysqlclient/setup_posix.py", line 29, in mysql_config
        raise EnvironmentError("%s not found" % (_mysql_config_path,))
    OSError: mysql_config not found
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
(base) n20286z185l10:assortedcodes lucy$ 

标签: pythonmacospip

解决方案


模式支持 Python 2.7 和 Python 3.6。请参考https://github.com/clips/pattern#pattern。这对我来说可以让 pattern.en 在 python 3.6 中工作:

git clone -b development https://github.com/clips/pattern
cd pattern
sudo python3.6 setup.py install

在我的 mac (10.11.6) 上安装期间,我遇到了一些 SSL 错误,这些错误通过在 python (3.6) 中运行此代码得到修复:

import nltk
import ssl 

try:
  _create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
  pass
else:
  ssl._create_default_https_context = _create_unverified_https_context

nltk.download('wordnet_ic')

显然有更好的方法来处理像这个 fwiw 这样的 ssl 东西:https ://stackoverflow.com/a/41351871/8870055

完整性检查:

user@USDR00253 ~> python3.6
Python 3.6.4 (v3.6.4:d48ecebad5, Dec 18 2017, 21:07:28)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> from pattern.en import conjugate, lemma, lexeme, parse
>>>
>>> print(parse('ridden', relations=True, lemmata=True))
ridden/VBN/B-VP/O/O/ride
>>>

pattern.en 终于在 python 3 中运行了!


推荐阅读