首页 > 解决方案 > bacnet_scan 输出 csv 文件错误 TypeError: a bytes-like object is required, not 'str'

问题描述

运行 bacnet_scan.py 时,它看起来像这样:

(volttron) (base) bartlino@bartlino-Latitude-E5530-non-vPro:~/Desktop/volttron/scripts/bacnet$ python bacnet_scan.py

Device Address        = <Address 192.168.0.190>
Device Id             = 0
maxAPDULengthAccepted = 1476
segmentationSupported = noSegmentation
vendorID              = 245

Device Address        = <Address 192.168.0.102>
Device Id             = 3056183
maxAPDULengthAccepted = 1024
segmentationSupported = segmentedBoth
vendorID              = 842

Device Address        = <RemoteStation 12345:2>
Device Id             = 201201
maxAPDULengthAccepted = 286
segmentationSupported = noSegmentation
vendorID              = 11

尝试添加 csv 文件输出python bacnet_scan.py --csv-out ~/Desktop/volttron/configs/test_mult.csv

我收到一个错误:

Traceback (most recent call last):
  File "bacnet_scan.py", line 203, in <module>
    this_csv_file.writeheader()
  File "/home/bartlino/anaconda3/lib/python3.8/csv.py", line 143, in writeheader
    return self.writerow(header)
  File "/home/bartlino/anaconda3/lib/python3.8/csv.py", line 154, in writerow
    return self.writer.writerow(self._dict_to_list(rowdict))
TypeError: a bytes-like object is required, not 'str'

有小费吗?

标签: pythonvolttron

解决方案


如果您没有使用最新的开发分支,我建议您先尝试一下,因为在 8.0 版本之后接受了一个 PR,它修复了与此脚本输出中的字节与字符串相关的问题。我也不确定它们是如何交互的,但是您当前似乎激活了 2 个虚拟环境,并且它可能与某些版本控制相混淆......因为它的 Python3.8 用于您的 Anaconda,我对此表示怀疑,但它需要考虑。


推荐阅读