【问题标题】:"pattern" package for python 3.6 Anacondapython 3.6 Anaconda 的“模式”包
【发布时间】:2017-10-29 07:24:27
【问题描述】:

我的机器上有适用于 python 3.6 的 Anaconda 环境 当我尝试通过 pip 安装 pattern 包时,出现类似

的错误

print n 周围的括号

然后我尝试了conda install -c asmeurer pattern=2.5;conda install -c asmeurer pattern。 它说

UnsatisfiableError:发现以下规范存在冲突:- 模式 -> python 2.7* - python 3.6*"

终于知道python 3没有直接的pattern。

所以,我尝试从http://www.clips.ua.ac.be/pattern 下载模式 zip。 现在,当我运行python ./setup.py install 时。它再次给出与 print n 周围的括号

相关的错误

我几乎尝试了所有方法,但无法在我的 python 3.6 Anaconda 环境中安装模式包。 有人可以在这里帮助我,一些解决方法吗?

【问题讨论】:

  • 如果你想使用 pip: 在 Anaconda 命令提示符中,cd 到 C:\Anaconda\Scripts,然后从那里使用 pip。

标签: python python-3.x anaconda


【解决方案1】:

使用适用于 Linux 的 Windows 子系统,我在 Python 3.7 中使用 miniconda 制作了模式:

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

我发现由于 PEP-479 存在 StopInteration 的错误,replacing raise StopIterationreturn 中的 pattern\text\__init__.py 修复了它。

如果要查找文件的位置,我执行了

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

Line 605,就在class Lexicon(lazydict): ...上方,将raise StopIteration替换为return

一切正常。

【讨论】:

    【解决方案2】:

    我不确定这与 Anaconda 有什么关系,但这对我来说可以让 pattern.en 在 python 3.6 中工作

    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://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 终于在 python3 中运行了!

    【讨论】:

      【解决方案3】:

      我用 Conda 安装了 PIP

      conda install pip
      

      然后用

      安装Pattern
      pip install Pattern3
      

      成功了:)

      【讨论】:

      • 你使用的是 python 3.6 吗?
      • 使用缓存的 pattern-2.6.zip 收集模式命令 python setup.py egg_info 的完整输出:回溯(最近调用最后一次):文件“”,第 1 行,在 文件中“C:\Users\jatin\AppData\Local\Temp\pip-build-r_d_2wek\Pattern\setup.py”,第 40 行打印 n ^ SyntaxError:在调用 'print' 时缺少括号-------- -------------------------------- 命令“python setup.py egg_info”在 C:\Users 中失败,错误代码为 1 \jatin\AppData\Local\Temp\pip-build-r_d_2wek\Pattern\
      • 我也试过了。但是得到与上面评论中提到的相同的错误。此外,它说“使用缓存的 pattern-2.6.zip”。这会是个问题吗?
      • Pattern 2.6 与 Python 3 不兼容导致的错误
      • 那么,有什么解决办法呢?我什至没有提到软件包版本。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-18
      • 1970-01-01
      • 2018-06-15
      • 1970-01-01
      • 1970-01-01
      • 2018-07-02
      • 1970-01-01
      相关资源
      最近更新 更多