Python 3.6 Anaconda的“pattern”包

8

我在我的计算机上安装了 Python 3.6 的 Anaconda 环境。

当我尝试通过 pip 安装 pattern 包时,它会出现以下错误:

括号内部的 print n

然后我尝试了 conda install -c asmeurer pattern=2.5;conda install -c asmeurer pattern,但都显示以下信息:

无法满足要求:发现以下规范存在冲突:- pattern -> python 2.7* - python 3.6*

最终我得知 Python 3 不直接支持 pattern 包。

于是,我尝试从http://www.clips.ua.ac.be/pattern下载 pattern 压缩包。然后我运行 python ./setup.py install,但又出现了与括号内部的 print n 相关的错误

我已经尝试了几乎所有方法,但仍然无法在我的 Python 3.6 Anaconda 环境中安装 pattern 包。请问有什么解决办法吗?


如果您想在Anaconda命令提示符中使用pip,请先切换到C:\Anaconda\Scripts目录,然后从那里使用pip。 - Masume Ebhami
3个回答

10
我使用Conda安装了PIP。
conda install pip

然后安装了Pattern。

pip install Pattern3

它起作用了 :)


我也尝试过了。但是我得到了与上面评论中提到的相同错误。而且,它说“using cached pattern-2.6.zip”。那可能是一个问题吗? - jatin kinra
错误是由于Pattern 2.6与Python 3不兼容。 - Masume Ebhami
那么,这个问题的解决方案是什么?我甚至没有提到软件包版本。 - jatin kinra
是的,我很抱歉忘记提到我使用的是pattern3而不是pattern。 - Masume Ebhami
pip install Pattern3 成功了。非常感谢您的帮助 Masume。你为我节省了大量时间,真的很感激。再次感谢 :-) - jatin kinra
显示剩余4条评论

5

我不确定这与Anaconda有何关系,但是以下方法对我在Python 3.6中使用pattern.en非常有效:

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

https://github.com/clips/pattern/issues/62

在我的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')

显然有更好的方法来处理像这样的SSL问题,供参考: https://dev59.com/7lgR5IYBdhLWcg3wbcv1#41351871

检查一下:

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 最终在 python3 中运行!


0

使用Windows子系统来运行Linux,我使用Python 3.7中的miniconda使模式工作:

conda create -n test -c conda-forge python=3.7 pattern
conda activate test

我发现由于PEP-479,StopInteration存在一个错误,并且在pattern\text\__init__.py替换 raise StopIterationreturn可以解决它。

为了找到该文件的位置,我执行了以下操作:

cd $(python -c "from distutils.sysconfig import get_python_lib;print(get_python_lib())")
nano pattern/text/__init__.py

第605行,就在class Lexicon(lazydict): ...上面,将raise StopIteration替换为return

这样一切都正常工作了。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接