我正在Raspberry Pi 上为Ubuntu 20.04工作
我读到这个错误是由Windows-Unix格式冲突引起的但是我的脚本中没有/r/n,我该如何解决这个问题?
#!/usr/bin/env python
import rospy
from laser_assembler.srv import *
from sensor_msgs.msg import PointCloud2
rospy.init_node("test_client")
rospy.wait_for_service("assemble_scans2")
assemble_scans = rospy.ServiceProxy('assemble_scans2',AssembleScans2)
pub = rospy.Publisher("/pointcloud", PointCloud2, queue_size = 1)
r = rospy.Rate(1)
while not rospy.is_shutdown():
try:
resp = assemble_scans(rospy.Time(0,0), rospy.get_rostime())
print "Got cloud with %u points" % len(resp.cloud.data)
pub.publish(resp.cloud)
except rospy.ServiceException, e:
print "Service call failed: %s" %e
r.sleep()
Windows默认使用CRLF行结尾,而Linux/Unix则使用LF行结尾。如果您的应用程序同时使用windows和linux,那么最好将代码保留在LF中,因为这两个平台都了解LF行结尾。
将代码转换为与unix兼容的行尾的一种简单方法是使用Vi/Vim并显式地将行尾设置为LF。
在Vi-:set ff=unix
中使用此命令可以将行结尾设置为LF。然后您的代码应该可以工作了。
为了避免进一步的冲突,在Windows上开发时,请确保检查您的文本编辑器行尾设置是否设置为LF。