小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
Ubuntu16.04 安装小鱼儿脚本报错
-
标题:使用一键安装过程中遇到程序崩溃
Traceback (most recent call last): File "/tmp/fishinstall/install.py", line 134, in <module> main() File "/tmp/fishinstall/install.py", line 68, in main importlib.import_module("tools.translation.translator").Linguist() 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/translation/translator.py", line 43 _import_command = f"tools.translation.assets.{self._currentLocale}" ^ SyntaxError: invalid syntax
-
这个错误是由于 Python 的版本问题导致的。具体来说,你使用的 Python 3.5 版本不支持 f-string(格式化字符串字面量),这是 Python 3.6 及以上版本的新特性。在你的错误日志中,
translator.py
文件的第 43 行使用了 f-string,这是 Python 3.5 不支持的语法。解决方案
-
升级 Python 版本:
Ubuntu 16.04 默认安装的 Python 版本可能是 3.5,你可以升级到 Python 3.6 或更高版本来解决这个问题。你可以通过以下步骤来升级 Python:-
首先,你需要添加 Deadsnakes PPA,这是一个提供较新 Python 版本的第三方源。打开终端并运行以下命令:
sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-get update
-
然后,你可以安装 Python 3.6(或更高版本,如果你喜欢):
sudo apt-get install python3.6
-
安装完成后,你可能需要使用
update-alternatives
来配置默认的 Python 版本(可选,但推荐):sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
然后使用
sudo update-alternatives --config python3
来选择默认版本。
-
-
使用虚拟环境:
如果你不想升级系统上的 Python 版本,你可以使用 Python 虚拟环境来安装和使用新版本的 Python。这可以通过venv
(Python 3.3+)或virtualenv
来实现。-
安装
venv
(如果尚未安装):sudo apt-get install python3-venv
-
创建一个新的虚拟环境并激活它:
python3 -m venv myenv source myenv/bin/activate
-
在虚拟环境中安装 Python 3.6(或其他你需要的版本,如果你使用
venv
,这通常意味着你需要通过其他方式安装,如使用 Pyenv):# 注意:这里通常不需要,因为 venv 使用你系统的 Python 版本创建环境 # 但如果你需要不同版本,可以考虑使用 pyenv
-
在激活的虚拟环境中运行你的安装脚本。
-
-
修改脚本:
如果你不能升级 Python 或使用虚拟环境,你需要修改translator.py
文件,将 f-string 替换为旧式的字符串格式化方法,如%
操作符或.format()
方法。
注意
- 升级 Python 版本或安装新版本的 Python 可能会影响到系统上依赖于特定 Python 版本的其他软件。因此,请确保在进行此类更改之前了解潜在的影响。
- 如果你选择修改脚本,请确保备份原始文件以防万一。
以上为生成回答,仅供参考~
-
-
注:执行指令是 wget http://fishros.com/install -O fishros && . fishros
-
@836610245 这个我后期改一下脚本。应该是不支持f字符串导致的。