【问题标题】:Cython setup error : Unable to find pgen, not compiling formal grammarCython 设置错误:无法找到 pgen,未编译正式语法
【发布时间】:2020-08-10 21:11:15
【问题描述】:

为了安装 cython(适用于 python 2.7、windows 8.1),以 .zip 格式下载,解压缩整个文件并运行 setup.py。因此,python shell 显示了这一点: 找不到pgen,不编译形式语法。

问题是什么以及如何解决?

【问题讨论】:

  • 请查看this 是否有帮助,它看起来与您相似。
  • 无论该消息如何,都应该可以安装和使用 Cython。

标签: python cython


【解决方案1】:

setup.py中的相关代码首先尝试查找pgen

 pgen = find_executable(
        'pgen', os.pathsep.join([os.environ['PATH'], os.path.join(get_python_inc(), '..', 'Parser')]))
    if not pgen:
        print ("Unable to find pgen, not compiling formal grammar.")

如果找到 pgen,则将文件 Cython/Parser/Grammar 作为参数提供给 pgen

    else:
        parser_dir = os.path.join(os.path.dirname(__file__), 'Cython', 'Parser')
        grammar = os.path.join(parser_dir, 'Grammar')
        subprocess.check_call([
            pgen,
            os.path.join(grammar),
            os.path.join(parser_dir, 'graminit.h'),
            os.path.join(parser_dir, 'graminit.c'),
            ])

Cython/Parser/Grammar的第一行

# Grammar for Cython, based on the Grammar for Python 3

# Note: This grammar is not yet used by the Cython parser and is subject to change.

该评论似乎表明即使 pgen 可用,它生成的代码也不会被使用。

【讨论】:

    【解决方案2】:

    更简单,

    尝试从 pip 安装 Cython。 Windows-打开Python文件夹,按住shift+右键,选择“open command promt here”

    pip 安装 cython

    【讨论】:

      【解决方案3】:

      我在 ubuntu 中遇到了同样的问题。我第一次尝试

      sudo easy_install cython
      

      失败了

      然后我按以下方式手动完成:

      mkdir cython
      cd cython
      wget http://cython.org/release/Cython-0.24.zip
      unzip Cython-0.24.zip
      cd Cython-0.24
      sudo python setup.py install
      

      【讨论】:

        【解决方案4】:

        如果在Raspberry Pi 上安装Cython 并出现错误

        找不到pgen

        我发现手动安装 pgen 然后运行 ​​Cython 安装有效!

        sudo pip3 install pgen
        

        【讨论】:

          【解决方案5】:

          尝试以下命令,

          sudo apt-get install build-essential python-dev python-pip libev4 libev-dev
          sudo apt-get install cython3
          

          【讨论】:

            猜你喜欢
            • 2021-12-27
            • 2019-04-09
            • 2022-01-22
            • 2014-11-26
            • 2016-11-11
            • 1970-01-01
            • 1970-01-01
            • 2017-01-16
            • 2023-03-08
            相关资源
            最近更新 更多