Python UDF for piglatin脚本找不到re modu

2024-04-25 15:29:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我在为我正在使用的pigltin脚本创建UDF时遇到问题。我的问题是,当我用pig script.pig运行脚本时,会出现以下错误:

[main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1121: Python Error. Traceback (most recent call last):
  File "utils.py", line 3, in <module>
    import re
ImportError: No module named re

在我的“实用工具.py“脚本,我导入模块如下:import re

为什么它找不到re模块,我该如何修复它?在

编辑 我应该注意,如果我直接使用python命令运行python脚本,我不会得到一个错误消息:它找不到re模块。在

编辑2

好的,根据注释,我安装了jython(我的系统上没有安装它),下面是我的脚本的print sys.path的输出:

使用python

^{pr2}$

使用Jython

['', '/usr/share/jython/Lib', '/usr/lib/site-python', '__classpath__']

使用pig

['/pig/lib/Lib', '__classpath__', '__pyclasspath__/']

看到这一点后,我试图将jython中缺少的path元素添加到pig版本中,现在得到的是:

 File "utils.py", line 8, in <module>
    import re
  File "/usr/share/jython/Lib/re.py", line 7, in <module>
    import sre, sys
  File "/usr/share/jython/Lib/sre.py", line 97, in <module>
    import sre_compile
  File "/usr/share/jython/Lib/sre_compile.py", line 17, in <module>
    assert _sre.MAGIC == MAGIC, "SRE module mismatch"
AssertionError: SRE module mismatch

已解决

为了解决我最近的错误消息,我查找了pig安装使用的jython版本(2.5),并手动安装了该版本。解决了这个问题。在


Tags: inpyimportre脚本sharelibusr