代码成功地在一台计算机上运行,但在另一台计算机上运行会产生“TypeError:cannot concatenate'str'and'int'objects”

2024-05-14 23:16:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个脚本,它利用Py-ART包读入机载天气雷达数据,然后对这些数据执行质量控制。我会注意到,我怀疑这不是该软件包的问题,否则我只会将问题发布到该回购。。。你知道吗

这个问题令人困惑的方面是,代码在我的机器上运行得非常完美,在Python 2.x和3.x中都是如此,尽管它在Python 2.x中的同事的机器上失败并出现以下错误:

TypeError: cannot concatenate 'str' and 'int' objects

尝试执行此代码块的最后一行时会触发错误:

az_raw = radar.azimuth['data'].data
roll = radar.roll['data'].data
azmth = az_raw + roll
azmth[azmth < 0] += 360

我从调查中推断出一些潜在的线索:

  1. 在我的机器上,代码正常运行,az_rawroll变量作为float32类型的数组读入,而在我同事的机器上,这些变量的类型是Buffer。将roll的内容添加到az_raw(逐元素)后,azmth在我的机器上保持为float32数组,在另一台机器上成为str数组。

  2. Py-ART使用netCDF4包从netCDF输入文件中读入数据-这里可能存在与机器和/或版本相关的问题?

  3. 不管输入文件是什么,这个问题都会持续存在(即,我们尝试了几个,并且从不同的数据收集阶段/项目中获得了相同的结果。

所以最终,我的问题归结为,当所有其他的看起来都一样时,是什么导致一台机器上出现这样的TypeError,而不是另一台机器上出现这样的TypeError?我想这两台机器之间可能存在依赖版本的差异(Py-ART、netCDF4等),但我不清楚这将如何导致这样的问题。以前有人见过类似的吗?你知道吗


Tags: 数据代码py机器dataraw错误数组
1条回答
网友
1楼 · 发布于 2024-05-14 23:16:36

同意诺里斯的观点。存在依赖关系问题。如何在每台机器上安装Py ART?确保工作正常的最好方法是使用Conda环境,这样您就可以控制(和隔离)依赖性。你知道吗

实际上,现在我看到了错误(缓冲区对浮点),我知道你同事的机器有过时的包,包括Numpy。如果他更新了numpy(这是IO领域的问题,我认为是https://docs.scipy.org/doc/numpy/reference/generated/numpy.frombuffer.html,而不是fromstring)

另外请注意python2.x的Py-ART支持很快就会取消。我们在10月份发布的下一个版本将关闭2.x版的CI。你知道吗

相关问题 更多 >

    热门问题