我在使用pyHM这个库的mouse模块时遇到了ValueError`这个错误
在我多次重复测试之后发现这个错误是小概率发生的,但确实会发生,大部分时候能正常运行。
这是错误信息:
mouse.move(x1, y1, multiplier=t)
File "E:\anaconda\envs\env1\lib\site-packages\pyhm-0.0.7-py3.8.egg\pyHM\mouse.py", line 22, in move
File "E:\anaconda\envs\env1\lib\site-packages\pyhm-0.0.7-py3.8.egg\pyHM\mouse.py", line 67, in gain_points
File "E:\anaconda\envs\env1\lib\site-packages\scipy\interpolate_fitpack_py.py", line 153, in splprep
res = _impl.splprep(x, w, u, ub, ue, k, task, s, t, full_output, nest, per,
File "E:\anaconda\envs\env1\lib\site-packages\scipy\interpolate_fitpack_impl.py", line 278, in splprep
t, c, o = _fitpack._parcur(ravel(transpose(x)), w, u, ub, ue, k,
ValueError: Invalid inputs.
以下是源码:
import random
from pyHM import mouse
def moveto(x, y, t, random_extent):
x1 = x + random.randint(-random_extent, random_extent)
y1 = y + random.randint(-random_extent, random_extent)
print(x, y, x1, y1)
mouse.move(x1, y1, multiplier=t)
b = (500, 600)
moveto(b[0], random.randint(206, 613), 1, 1)
在错误后仍有此次的输出结果:
500 465 499 465
应该是这个库的问题,但用这个库的人太少了,我也没懂哪里出了问题,问问怎么解决
你说的也对,由于pyHM库中的mouse模块在调用scipy库的splprep函数的时候传入了无效的参数,导致ValueError的发生。
error说:scipy库的splprep函数要求传入的x参数为二维数组,而pyHM库中的mouse模块传入的却是一维数组。
修改一下pyHM库中mouse.py文件中move函数中调用scipy库splprep函数时传入的参数,让其符合scipy库的要求。
也可以尝试更新pyhm库到最新版本,看看是否已经解决这个问题。
这个错误是由于 pyHM 的 mouse 模块在调用 scipy 的 splprep 函数时传入了无效的参数导致的。根据错误信息,可以看出是 ValueError: Invalid inputs. 。
在你的代码中,你可以检查 mouse.move() 方法的参数 x1 和 y1 是否有效,确保它们是合法的坐标值。
你也可以尝试更新 pyHM 库到最新版本,或者报告这个问题给 pyHM 的开发人员,帮助他们修复这个问题。
这个功能pyautogui 可以解决,pyHM本身也依赖这个库
这个错误是因为程序中传入了不符合要求的参数。在pyHM中,splprep函数被调用时,没有给定正确的x,w,u,ub,ue,k,task,s,t,full_output,nest,per等参数,所以抛出了ValueError。请参考pyHM的文档或源代码,确定在调用splprep函数时传递的参数是否正确。
这个错误的根源是scipy的_fitpack._parcur()方法的错误,该方法对于输入数据x,w,u,ub,ue,k不合法会抛出ValueError。
需要检查输入数据是否正确,确定其是否符合要求。可以查阅scipy文档,确保数据类型,范围和维度都合适。
涉及到pyHM库的mouse模块。错误的原因是因为splprep函数的输入是无效的,并且在parcur函数中引发了ValueError异常。建议检查输入数据,确保它们是有效的,并重新运行代码。