WSL Ubuntu运行PASTA提示找不到python命令的问题咨询
问题原因
报错核心是PASTA内部调用的子脚本(包括hmmeralign关联的执行脚本)的解释器声明行固定写为#!/usr/bin/env python,运行时会自动从系统路径中查找名为python的可执行程序。你当前WSL下的Ubuntu环境仅提供python3命令,没有配置python命令的指向,因此主程序即使手动用python3启动,内部拉起子进程时依然会因为找不到python解释器崩溃。
修复方案
按优先级推荐以下三种解决方式,选一种即可:
- 方案1(最规范,推荐):通过Ubuntu官方源的适配包自动配置别名
直接执行安装命令,系统会自动创建符合规则的软链接,不会出现路径配置错误:
安装完成后执行sudo apt update && sudo apt install -y python-is-python3python --version,如果正常返回Python3.x的版本信息,就可以直接重新运行你的PASTA命令。 - 方案2:手动创建软链接
如果不想安装额外的包,可以手动配置软链接:- 先查询当前python3的执行路径:
默认WSL Ubuntu环境下返回结果为which python3/usr/bin/python3 - 执行命令创建软链接:
sudo ln -s /usr/bin/python3 /usr/local/bin/python
python --version返回正常即可使用。 - 先查询当前python3的执行路径:
- 方案3(临时生效,仅用于单次测试):当前终端会话配置别名
直接在当前运行PASTA的终端执行别名设置命令,不需要root权限:
注意:该配置仅对当前打开的终端窗口生效,关闭终端后配置自动失效,不适合长期使用。alias python=python3
不需要额外安装Python2版本,PASTA的内置脚本完全兼容Python3环境,将
python指向Python3不会出现兼容性问题。
内容的提问来源于stack exchange,提问作者logan007
相关产品推荐
相关产品推荐

