本文已参与「新人创作礼」活动,一起开启掘金创作之路。
目录
- 问题一:`import: not authorized ‘rospy‘ 和SyntaxError: Non-ASCII character ‘\xe5‘ in file
- 问题二:SyntaxError: Non-ASCII charact
问题描述:在进行ros开发时,遇到下面这些异常,这些异常主要是在写python代码是最常出现的,可以应用在解决其他出现在如下的开发场景异常中。
问题一:`import: not authorized ‘rospy‘ 和SyntaxError: Non-ASCII character ‘\xe5‘ in file
#! /usr/bin/env python
#coding=utf-8
# from os import putenv
import rospy
# from std_msgs import msg
from std_msgs.msg import String # 发布的消息类型
'''
使用欧Python 实现消息发布:
1. 导包;
2. 初始化ros节点
3. 创建发布者对象;
4. 编写发布逻辑并发布数据。
'''
if __name__ == "__main__":
# 2. 初始化ros节点
rospy.init_node("sanDai") #传入节点名称
# 3. 创建发布者对象;
pub = rospy.Publisher("che",String,queue_size=10)
# 4. 编写发布逻辑并发布数据。
# 创建数据
msg = String()
# 使用循环发布数据
while not rospy.is_shutdown():
msg.data = "hello"
# 发布数据
pub.publish(msg)
记录一下遇到的错误:
-
如果Python文件中有中文,会抛出异常
SyntaxError: Non-ASCII character '\xe5' in file解决方法:在Python文件前加上一句
#coding=utf-8 -
在运行python时,抛出异常
import: not authorized 'rospy' @ error/constitute.c/WriteImage/1028.解决方法:在python文件前面加上一句 --> 指定一下解释器
#! /usr/bin/env python -
如果吧
#coding=utf-8放在第一行,#! /usr/bin/env python放在第二行,还是会出现问题2,所以他们之间的顺序应该如下:#! /usr/bin/env python #coding=utf-8
问题二:SyntaxError: Non-ASCII character ‘\xe5‘ in file
原因: Python默认是以ASCII作为编码方式的,如果在自己的Python源码中包含了中文(或者其他非英语系的语言),此时即使你把自己编写的Python源文件以UTF-8格式保存了,但实际上,这依然是不行的。
注意:这句话最好加载python文件的最开始,在进行导包,编写代码。
解决方案: 在py文件开头写入以下命令
#coding=utf-8
## 或者(二选一)
# -*- coding: UTF-8 -*-