栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

AttributeError: module ‘enum‘ has no attribute ‘IntFlag‘

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

AttributeError: module ‘enum‘ has no attribute ‘IntFlag‘

python环境问题

背景描述:
网上多数说法为,此问题起源于python环境中enum34模块冲突,python3.6后enum34库与标准库不兼容且不必要,之前python版本中有安装单独的此库,同时存在且python3.6运行时会出现此问题;

个人历程
使用机器人操作系统ROS时用python2.7版本,后不知什么时候安装了python3.6;
ROS在进行arbotiX+rviz仿真时出现python3相关报错,于是参考其他大兄弟做法在环境变量.bashrc中添加了python2路径,并在要运行的文件中指定python2;

gedit ~/.bashrc  //打开.bashrc文件
//在最下面添加
# export PYTHONPATH="/usr/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages/yaml:$PYTHONPATSH"

后在运行gdb调试中的start、run时,出现AttributeError: module ‘enum‘ has no attribute ‘IntFlag‘报错,根据提示信息看到应该是python3.6运行出了问题;
网上给的多数说法为,用pip命令卸载enum34或直接删除enum34中对应文件夹;无奈的是我的pip命令也会报AttributeError: module ‘enum‘ has no attribute ‘IntFlag‘这个错误,并且对应位置找不到enum34这个文件夹;且担心卸载了enum34会影响python2的环境,进而影响我的ROS使用;

于是参考其他大兄弟做法把.bashrc文件中之前加入的python2路径注释掉,并使用以下命令清空$PYTHONPATH变量:

 unset PYTHONPATH

然后问题又来了,没了PYTHONPATH,ROS运行不了了,报错为

 ImportError: No module named rosmaster.master_api

显然是缺少rosmaster了,这时候更新一下

sudo apt update

再次运行ROS正常,且此时gdb调试中的start、run也正常运行,不再报错;
此时再查看$PYTHONPATH,发现是在ROS相关文件下;

home/xxx/catkin_ws/devel/lib/python2.7/dist-packages:/opt/ros/melodic/lib/python2.7/dist-packages

以上为本人调整python环境相关报错的过程,或许存在表述不当之处,仅供参考!

参考:

  1. https://blog.csdn.net/xiaojinger_123/article/details/120199802
  2. https://shliang.blog.csdn.net/article/details/87255393?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.pc_relevant_default&utm_relevant_index=9
  3. 参考不全
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/840256.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号