无法在python中从grepfunc导入grep

时间:2019-08-20 14:44:50

标签: python python-3.x anaconda

我用以下方法安装了GrepFunc:

pip install grepfunc

但是当我尝试通过以下方式将其导入我的木星笔记本中时:

from grepfunc import grep

我得到一个错误消息:

  

没有名为'grepfunc'的模块

1)我检查了grepfunc是否已安装:

pip list

答案是肯定的。但是我在其他已安装的软件包中找不到该库

2)然后,我从原始GitHub链接下载了代码,并将其复制到其他库在 /username/anaconda3/lib/python3.7/grepfunc / 中。

在这种情况下,当我从grepfunc import grep 中运行时,没有任何错误。但是在尝试使用grap函数本身时,出现以下错误:

  

StopIteration追踪(最近一次通话最后一次)〜/ anaconda3 / lib / python3.7 / grepfunc / grepfunc.py in grep_iter(target,pattern,** kwargs)234#完成迭代-> 235提高StopIteration 236      

StopIteration:

     

上述异常是以下异常的直接原因:

     

RuntimeError Traceback(最近一次通话最近)在2 3#个grep标题中,其中带有单词“ dog”。注意:i = True将忽略大小写。 ----> 4个grep(电影,“狗”)

     

〜/ anaconda3 / lib / python3.7 / grepfunc / grepfunc.py in grep(target,pattern,** kwargs)94#使用grep_iter构建返回列表95 ret = [] ---> 96 grep_iter(target,pattern,** kwargs)中的值:97 98#如果安静模式不需要继续,则返回True,因为我们得到了一个值

     

RuntimeError:生成器引发了StopIteration

1 个答案:

答案 0 :(得分:0)

我今天使用Python 3.7遇到了同样的问题,这是由于终止了Python生成器的方式的改变(我不确定此更改是在哪个Python版本中引入的)。 Refer to PEP 479 -- Change StopIteration handling inside generators

我通过编辑grepfunc.py并注释掉第237行来解决此问题。

#raise StopIteration

在python缓存中查找grepfunc,删除这些文件,然后可以重新导入grepfunc并使用。

问题已提交到GitHub(https://github.com/RonenNess/grepfunc/issues/2