cannot import name '_validate_lengths' from 'numpy.lib.arraypad'
在Anaconda下新配置了tensorflow环境,结果在引入skimage 包时报错,错误提示from numpy.lib.arraypad import _validate_lengths,找不到_validate_lengths函数,在arraypad.py文件中确实找不到对应的函数,所以找到以前配置过的环境中对应的文件,拷贝这个缺失的函数,问题解决(****************一定要重启环境)。
(flappbird1) luo@luo-All-Series:~/MyFile/COCO/coco/PythonAPI$
(flappbird1) luo@luo-All-Series:~/MyFile/COCO/coco/PythonAPI$ python\
>
Python 3.7.2 (default, Dec 29 2018, 06:19:36)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>
>>>
>>> from skimage import io
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/luo/anaconda3/envs/flappbird1/lib/python3.7/site-packages/skimage/__init__.py", line 167, in <module>
from .util.dtype import (img_as_float32,
File "/home/luo/anaconda3/envs/flappbird1/lib/python3.7/site-packages/skimage/util/__init__.py", line 8, in <module>
from .arraycrop import crop
File "/home/luo/anaconda3/envs/flappbird1/lib/python3.7/site-packages/skimage/util/arraycrop.py", line 8, in <module>
from numpy.lib.arraypad import _validate_lengths
ImportError: cannot import name '_validate_lengths' from 'numpy.lib.arraypad' (/home/luo/anaconda3/envs/flappbird1/lib/python3.7/site-packages/numpy/lib/arraypad.py)
>>>
>>>
>>>
>>>
>>> from skimage import data, io, filters
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/luo/anaconda3/envs/flappbird1/lib/python3.7/site-packages/skimage/__init__.py", line 176, in <module>
from .util.lookfor import lookfor
File "/home/luo/anaconda3/envs/flappbird1/lib/python3.7/site-packages/skimage/util/__init__.py", line 8, in <module>
from .arraycrop import crop
File "/home/luo/anaconda3/envs/flappbird1/lib/python3.7/site-packages/skimage/util/arraycrop.py", line 8, in <module>
from numpy.lib.arraypad import _validate_lengths
ImportError: cannot import name '_validate_lengths' from 'numpy.lib.arraypad' (/home/luo/anaconda3/envs/flappbird1/lib/python3.7/site-packages/numpy/lib/arraypad.py)
>>>
>>>
>>>
>>>
>>> from skimage import data, io, filters
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/luo/anaconda3/envs/flappbird1/lib/python3.7/site-packages/skimage/__init__.py", line 176, in <module>
from .util.lookfor import lookfor
File "/home/luo/anaconda3/envs/flappbird1/lib/python3.7/site-packages/skimage/util/__init__.py", line 8, in <module>
from .arraycrop import crop
File "/home/luo/anaconda3/envs/flappbird1/lib/python3.7/site-packages/skimage/util/arraycrop.py", line 8, in <module>
from numpy.lib.arraypad import _validate_lengths
ImportError: cannot import name '_validate_lengths' from 'numpy.lib.arraypad' (/home/luo/anaconda3/envs/flappbird1/lib/python3.7/site-packages/numpy/lib/arraypad.py)
>>>
>>>
>>>
>>> from skimage import io
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/luo/anaconda3/envs/flappbird1/lib/python3.7/site-packages/skimage/__init__.py", line 176, in <module>
from .util.lookfor import lookfor
File "/home/luo/anaconda3/envs/flappbird1/lib/python3.7/site-packages/skimage/util/__init__.py", line 8, in <module>
from .arraycrop import crop
File "/home/luo/anaconda3/envs/flappbird1/lib/python3.7/site-packages/skimage/util/arraycrop.py", line 8, in <module>
from numpy.lib.arraypad import _validate_lengths
ImportError: cannot import name '_validate_lengths' from 'numpy.lib.arraypad' (/home/luo/anaconda3/envs/flappbird1/lib/python3.7/site-packages/numpy/lib/arraypad.py)
>>>
>>>
>>>
>>> exit()
(flappbird1) luo@luo-All-Series:~/MyFile/COCO/coco/PythonAPI$
(flappbird1) luo@luo-All-Series:~/MyFile/COCO/coco/PythonAPI$
---------------------------------------------------------------------------------------------------
找到:Anaconda3/envs/your dir/lib/python3.7/site-packages/numpy/lib/arraypad.py 954行,添加洗下面两个函数保存,重新加载即可消除错误(****************一定要重启环境)
--------------------------------------------------------------------------------------------------
def _normalize_shape(ndarray, shape, cast_to_int=True):
"""
Private function which does some checks and normalizes the possibly
much simpler representations of 'pad_width', 'stat_length',
'constant_values', 'end_values'.
Parameters
----------
narray : ndarray
Input ndarray
shape : {sequence, array_like, float, int}, optional
The width of padding (pad_width), the number of elements on the
edge of the narray used for statistics (stat_length), the constant
value(s) to use when filling padded regions (constant_values), or the
endpoint target(s) for linear ramps (end_values).
((before_1, after_1), ... (before_N, after_N)) unique number of
elements for each axis where `N` is rank of `narray`.
((before, after),) yields same before and after constants for each
axis.
(constant,) or val is a shortcut for before = after = constant for
all axes.
cast_to_int : bool, optional
Controls if values in ``shape`` will be rounded and cast to int
before being returned.
Returns
-------
normalized_shape : tuple of tuples
val => ((val, val), (val, val), ...)
[[val1, val2], [val3, val4], ...] => ((val1, val2), (val3, val4), ...)
((val1, val2), (val3, val4), ...) => no change
[[val1, val2], ] => ((val1, val2), (val1, val2), ...)
((val1, val2), ) => ((val1, val2), (val1, val2), ...)
[[val , ], ] => ((val, val), (val, val), ...)
((val , ), ) => ((val, val), (val, val), ...)
"""
ndims = ndarray.ndim
# Shortcut shape=None
if shape is None:
return ((None, None), ) * ndims
# Convert any input `info` to a NumPy array
shape_arr = np.asarray(shape)
try:
shape_arr = np.broadcast_to(shape_arr, (ndims, 2))
except ValueError:
fmt = "Unable to create correctly shaped tuple from %s"
raise ValueError(fmt % (shape,))
# Cast if necessary
if cast_to_int is True:
shape_arr = np.round(shape_arr).astype(int)
# Convert list of lists to tuple of tuples
return tuple(tuple(axis) for axis in shape_arr.tolist())
def _validate_lengths(narray, number_elements):
"""
Private function which does some checks and reformats pad_width and
stat_length using _normalize_shape.
Parameters
----------
narray : ndarray
Input ndarray
number_elements : {sequence, int}, optional
The width of padding (pad_width) or the number of elements on the edge
of the narray used for statistics (stat_length).
((before_1, after_1), ... (before_N, after_N)) unique number of
elements for each axis.
((before, after),) yields same before and after constants for each
axis.
(constant,) or int is a shortcut for before = after = constant for all
axes.
Returns
-------
_validate_lengths : tuple of tuples
int => ((int, int), (int, int), ...)
[[int1, int2], [int3, int4], ...] => ((int1, int2), (int3, int4), ...)
((int1, int2), (int3, int4), ...) => no change
[[int1, int2], ] => ((int1, int2), (int1, int2), ...)
((int1, int2), ) => ((int1, int2), (int1, int2), ...)
[[int , ], ] => ((int, int), (int, int), ...)
((int , ), ) => ((int, int), (int, int), ...)
"""
normshp = _normalize_shape(narray, number_elements)
for i in normshp:
chk = [1 if x is None else x for x in i]
chk = [1 if x >= 0 else -1 for x in chk]
if (chk[0] < 0) or (chk[1] < 0):
fmt = "%s cannot contain negative values."
raise ValueError(fmt % (number_elements,))
return normshp
###############################################################################
# Public functions
cannot import name '_validate_lengths' from 'numpy.lib.arraypad'的更多相关文章
- [Python] Array Attributes of Numpy lib
Attributes of numpy.ndarray: numpy.ndarray.shape: Dimensions (height, width, ...) numpy.ndarray.ndim ...
- [Python] Generating random numbers using numpy lib
import numpy as np def test_run(): data=np.random.random((3,4)) """ [[ 0.80150549 0.9 ...
- when i import skimage,it occurred --"cannot import name '_validate_lengths'"
how to sovle this prolem? 1)with the administrator user to run cmd 2)imput and run : pip install --u ...
- 【400】numpy.pad 为数组加垫(迷宫类题目)
参考:Numpy学习——数组填充np.pad()函数的应用 举例说明: import numpy as np a = np.zeros((3, 4), dtype=int) a array([[0, ...
- scipy几乎实现numpy的所有函数
NumPy和SciPy的关系? numpy提供了数组对象,面向的任何使用者.scipy在numpy的基础上,面向科学家和工程师,提供了更为精准和广泛的函数.scipy几乎实现numpy的所有函数, ...
- 【pytorch】持续踩坑 & 错误解决经历
报错 1.[invalid argument 0: Sizes of tensors must match except in dimension 0.] {出现在 torch.utils.data. ...
- ImportError: numpy.core.multiarray failed to import
1. ImportError: numpy.core.multiarray failed to import pip install -U numpy http://stackoverflow.com ...
- 安装numpy+mkl
引子: 运行from sklearn.dataset import load_iris 时提示: Traceback (most recent call last): File "F:/gi ...
- gcc, numpy, rabbitmq等安装升级总结
1. 公司在下面目录安装了gcc-4.8.2,以支持c++11,可以通过在bashrc中添加来实现: PATH=/opt/compiler/gcc-4.8.2/bin:$PATH 2. 公司环境切换到 ...
随机推荐
- 理想中的 PCB 文件格式
理想中的 PCB 文件格式 因为平时写代码使用 git,在画 PCB 也使用 git 来管理 PCB 文件. 但是 PCB 文件是二进制的,所以在比较时非常麻烦. 虽然 PCB 文件可以导出 文本文件 ...
- jsp_include
jsp__include指令先包含后编译 include 行为 先编译后包含 <jsp:include page="head.jsp"></jsp:include ...
- RK3288 制作开机动画
Android 的开机动画是由 Linux 本地守护程序 bootanimation 专门控制实现的,其代码在 frameworks/base/cmds/bootanimation/ 目录下. 修改开 ...
- 试玩swoole扩展 第一天
安装 pecl install swoole 部分过程: configure: creating ./config.statusconfig.status: creating config.hrunn ...
- tomcat 关闭出现 Connection refused 解决方法
1.找到tomcat占用的端口 ps -eaf|grep tomcat 2.杀掉tomcat进程 kill -p 6453 后记: 杀其他进程的时候,上面的方法不可以,用下面的就ok了 lsof - ...
- i和j的值交换的方法
方法一: int i = 3, j = 5; int c = i; i = j; j = c; 方法二: int i = 3, j = 5; int n = i + j; i = n ...
- SET STATISTICS IO
SET STATISTICS IO (Transact-SQL) https://technet.microsoft.com/zh-cn/library/ms184361(SQL.90).aspx 如 ...
- 关于alter database open resetlogs及incarnation的一点理解
关于alter database open resetlogs及incarnation的一点理解 不完全恢复只能做一次吗? 采用rman的默认设置,对数据库进行了backup database备份,进 ...
- optparse模块
optparse模块主要是用来对参数的记录,相对来说比较灵活, 例子代码如下: #!/usr/bin/env python from optparse import OptionParser usag ...
- teamviewer14商用试用期到期从新安装使用
teamviewer14商用试用期到期从新安装使用 1)1.退出TeamViewer远程软件,卸载软件.2)2.按键盘的[win]+[R]组合键打开[运行],输入 %appdata%3)3.在弹出的窗 ...