【问题标题】:Why does first import of skimage fail, but second one succeed?为什么第一次导入 skimage 失败,但第二次成功?
【发布时间】:2019-06-21 20:11:42
【问题描述】:

当我导入 skimage 时,我收到一条奇怪的错误消息,似乎与 scikit-image、numpy 和 dask 的版本不匹配问题有关,但如果我立即尝试再次导入,一切都很好——即

(base) me@balin:~$ python
Python 2.7.15 |Anaconda, Inc.| (default, Dec 14 2018, 19:04:19) 
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import skimage
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/me/anaconda2/lib/python2.7/site-packages/skimage/__init__.py", line 167, in <module>
    from .util.dtype import (img_as_float32,
  File "/home/me/anaconda2/lib/python2.7/site-packages/skimage/util/__init__.py", line 6, in <module>
    from .apply_parallel import apply_parallel
  File "/home/me/anaconda2/lib/python2.7/site-packages/skimage/util/apply_parallel.py", line 8, in <module>
    import dask.array as da
  File "/home/me/anaconda2/lib/python2.7/site-packages/dask/array/__init__.py", line 9, in <module>
    from .routines import (take, choose, argwhere, where, coarsen, insert,
  File "/home/me/anaconda2/lib/python2.7/site-packages/dask/array/routines.py", line 256, in <module>
    @wraps(np.matmul)
  File "/home/me/anaconda2/lib/python2.7/functools.py", line 33, in update_wrapper
    setattr(wrapper, attr, getattr(wrapped, attr))
AttributeError: 'numpy.ufunc' object has no attribute '__module__'
>>> import skimage
>>> 

>>> skimage.__version__
'0.14.2'

>>> import numpy as np
>>> np.__version__
'1.16.2'

>>> import dask
>>> dask.__version__
u'1.0.0'

【问题讨论】:

  • import numpy as np, dask, skimage 怎么样(每个都在单独的声明中)?
  • 这里一定有一些条件导入。在第一次尝试时,skimage 导入 skimage.util,然后 dask.array 尝试加载其例程。在第二次导入时,这个链被破坏了,因为其中一个包已经加载,尽管它的一些(可选)依赖项没有。
  • @CristiFati - 不,没用,但感谢您的建议
  • 无论如何,我看到你找到了答案!

标签: python python-2.7 numpy dask scikit-image


【解决方案1】:

这些版本的 dask 和 numpy 显然是不兼容的。有多个关于此的错误报告

https://github.com/scikit-image/scikit-image/issues/3649
https://github.com/scikit-image/scikit-image/issues/3654
https://github.com/scikit-image/scikit-image/issues/3818

解决方案似乎正在更新 dask,所以不妨试试

conda update --no-update-deps dask

【讨论】:

  • 谢谢,我知道版本问题,并且一直在使用 anaconda-navigator 尝试选择两个兼容的版本。但是,令我困惑的是为什么第一次导入失败,第二次成功。我会认为要么都失败,要么都成功。
猜你喜欢
  • 2020-09-13
  • 1970-01-01
  • 2012-01-26
  • 2020-03-28
  • 2012-07-31
  • 1970-01-01
  • 2020-08-31
  • 1970-01-01
  • 2018-10-19
相关资源
最近更新 更多