小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
一键安装崩溃
-
环境是wsl2下的ubuntu16.04
检测到程序发生异常退出,请打开:https://fishros.org.cn/forum 携带如下内容进行反馈
标题:使用一键安装过程中遇到程序崩溃
Traceback (most recent call last): File "/tmp/fishinstall/install.py", line 134, in <module> main() File "/tmp/fishinstall/install.py", line 123, in main run_tool_file(tools[code]['tool'].replace("/",".")) File "/tmp/fishinstall/tools/base.py", line 1476, in run_tool_file if tool.run()==False: return False File "/tmp/fishinstall/tools/tool_install_ros.py", line 413, in run self.install_ros() File "/tmp/fishinstall/tools/tool_install_ros.py", line 400, in install_ros self.check_sys_source() File "/tmp/fishinstall/tools/tool_install_ros.py", line 217, in check_sys_source tool = run_tool_file('tools.tool_config_system_source',authorun=False) File "/tmp/fishinstall/tools/base.py", line 1473, in run_tool_file tool = importlib.import_module(file.replace(".py","")).Tool() File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 986, in _gcd_import File "<frozen importlib._bootstrap>", line 969, in _find_and_load File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 673, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 661, in exec_module File "<frozen importlib._bootstrap_external>", line 767, in get_code File "<frozen importlib._bootstrap_external>", line 727, in source_to_code File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed File "/tmp/fishinstall/tools/tool_config_system_source.py", line 150 PrintUtils.print_info(f'{source} 已经测试失败,跳过!') ^ SyntaxError: invalid syntax
-
您遇到的问题是由于在Python 3.5环境中使用了Python 3.6及以后版本引入的f-string格式化功能。具体来说,
f'{source} 已经测试失败,跳过!'
这行代码在Python 3.5中是不被支持的,因为它使用了f-string语法。为了解决这个问题,您可以采取以下几种方法之一:
-
升级Python版本:
如果可能的话,将您的Python版本升级到3.6或更高版本。这是最简单直接的解决方法,因为新版本提供了更多的特性和改进。 -
修改代码:
如果您不能升级Python版本,您需要修改代码,将f-string替换为旧式的字符串格式化方法。例如,您可以将:PrintUtils.print_info(f'{source} 已经测试失败,跳过!')
改为:
PrintUtils.print_info('{} 已经测试失败,跳过!'.format(source))
-
使用容器或虚拟机:
如果升级Python版本或修改代码都不可行,您可以考虑在Docker容器或虚拟机中运行您的安装脚本,这样可以在一个不受当前系统Python版本限制的环境中运行。 -
联系脚本维护者:
如果您是在使用某个特定的软件包或工具(如fishros
),并且这个错误是由软件包引起的,您可以联系该软件的维护者,报告这个问题,并询问是否有针对旧版Python的兼容版本或解决方案。
对于您当前的情况,我建议您首先尝试将Python升级到3.6或更高版本,因为这将使您能够使用Python的许多新特性和改进。如果您无法升级Python,那么修改代码或使用容器/虚拟机可能是更好的选择。
以上为生成回答,仅供参考~
-
-
@455164795 这个是已知的f-string问题,等等修复哈
-
-
@ganyuanzhen 已经合并
-
@ganyuanzhen 感谢!
-
此回复已被删除! -
@小鱼 谢谢大佬!已经好了!
-
-