【问题标题】:File "E:\python\lib\re.py", line 229, in finditer return _compile(pattern, flags).finditer(string) TypeError: expected string or bytes-like object文件“E:\python\lib\re.py”,第 229 行,在 finditer 中返回 _compile(pattern, flags).finditer(string) TypeError: expected string or bytes-like object
【发布时间】:2018-09-09 08:50:41
【问题描述】:

我正在使用 skimage.feature.greycomatrix 来计算图像的 GLCM(灰度共现矩阵),但是当我使用时:

from skimage.feature import greycomatrix 

在python 3.6.4 shell 中 - 它可以工作。 See image

但是当我在我的 sublime Text 3 中使用它时,然后 会报错:

Traceback (most recent call last):
  File "C:\Users\Martin Ma\Desktop\every day python\test\GLCM\main.py", line 80, in <module>
    from skimage.feature import greycomatrix
  File "E:\python\lib\site-packages\skimage\feature\__init__.py", line 9, in <module>
    from .peak import peak_local_max
  File "E:\python\lib\site-packages\skimage\feature\peak.py", line 3, in <module>
    from ..segmentation import relabel_sequential
  File "E:\python\lib\site-packages\skimage\segmentation\__init__.py", line 1, in <module>
    from .random_walker_segmentation import random_walker
  File "E:\python\lib\site-packages\skimage\segmentation\random_walker_segmentation.py", line 43, in <module>
    from ..filters import rank_order
  File "E:\python\lib\site-packages\skimage\filters\__init__.py", line 3, in <module>
    from .edges import (sobel, sobel_h, sobel_v,
  File "E:\python\lib\site-packages\skimage\filters\edges.py", line 17, in <module>
    from ..restoration.uft import laplacian
  File "E:\python\lib\site-packages\skimage\restoration\__init__.py", line 12, in <module>
    from .inpaint import inpaint_biharmonic
  File "E:\python\lib\site-packages\skimage\restoration\inpaint.py", line 9, in <module>
    from ..measure import label
  File "E:\python\lib\site-packages\skimage\measure\__init__.py", line 6, in <module>
    from ._regionprops import regionprops, perimeter
  File "E:\python\lib\site-packages\skimage\measure\_regionprops.py", line 645, in <module>
    _install_properties_docs()
  File "E:\python\lib\site-packages\skimage\measure\_regionprops.py", line 632, in _install_properties_docs
    prop_doc = _parse_docs()
  File "E:\python\lib\site-packages\skimage\measure\_regionprops.py", line 625, in _parse_docs
    doc, flags=re.DOTALL)
  File "E:\python\lib\re.py", line 229, in finditer
    return _compile(pattern, flags).finditer(string)
TypeError: expected string or bytes-like object

(See picture of Sublime Text error)

谁能告诉我为什么会发生这种情况以及我该如何解决?

我的代码:

from skimage.feature import greycomatrix
import numpy as np 

image=np.array([[1,1,5,6,8],
                [0,0,5,7,1],
                [4,0,0,1,2],
                [8,5,1,2,5]],dtype=np.uint8)
#levels=256   image   this test is 9
result=greycomatrix(image,[1],[0,np.pi/4,np.pi/2,3*np.pi/4],levels=9)
print(result[:, :, 0, 0])

enter image description here

【问题讨论】:

  • 除非你包含你的代码,否则恐怕没人能帮你。
  • 你确定它运行时执行的是正确版本的python吗?
  • 您是否使用-OO 标志运行Python?如果是,请删除标志。
  • @ Gautam J. 非常感谢。我已将我的代码和错误图像放在我的问题中!
  • @Juan:已发布答案。

标签: python python-3.x numpy sublimetext3 scikit-image


【解决方案1】:

您使用-OO 标志运行Python,该标志会丢弃文档字符串,将它们替换为None。 skimage.measure._regionprops includes code 在初始化期间解析一个函数的文档字符串以设置一堆其他函数的文档字符串。当文档字符串被丢弃时,这会失败。在没有 -OO 标志的情况下运行 Python 可以避免该问题。

看起来在 scikit-image 代码库的其他部分可能已经遇到并修复了类似的问题;我看到一些地方已经检查了设置为None 的文档字符串,例如skimage.io。为了使skimage.measure._regionprops 与-OO 兼容,必须将None 文档字符串的类似检查添加到该模块。 _install_properties_docs 不仅仅是处理文档字符串,所以如果我们没有文档字符串,我们就不能跳过整个事情。

【讨论】:

  • 令人着迷!非常感谢!@user2357112,你在python方面很棒而且更深入,但我只是一个python新兵,我的意思是我只能用它来写一些程序,但是当我在python中遇到一些错误时,我不知道如何自己处理。所以我会在 StackOverFlow 中找到它,这很棒。有时我想我自己能不能应付。但是我没有足够的知识来处理它。所以你有什么建议或一些书籍或一些用于此的链接,非常感谢。
猜你喜欢
  • 1970-01-01
  • 2016-10-27
  • 2019-11-11
  • 1970-01-01
  • 1970-01-01
  • 2020-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多