银河麒麟系统运行.sh或.py脚本需解决权限、解释器、环境变量及桌面限制问题:.sh脚本推荐用sh/bash显式调用或chmod+x后./执行,双击需.desktop启动器;.py脚本应优先用python3或conda环境,并通过.desktop配置完整执行上下文。

如果您在银河麒麟系统中尝试运行.sh或.py脚本但未能成功执行,则可能是由于权限缺失、解释器未识别、环境变量不完整或桌面环境限制所致。以下是针对不同脚本类型的多种可行执行方法:
一、运行.sh脚本的多种方式
银河麒麟系统默认使用dash作为/bin/sh的符号链接,且Peony文件管理器自V10 SP1起禁用.sh后缀的双击执行,因此需显式调用解释器或赋予执行权限并配置运行上下文。
1、使用sh命令显式调用(兼容性最高)
在终端中进入脚本所在目录,执行:
sh script.sh
2、使用bash命令调用(支持高级语法)
若脚本含[[ ]]、数组、source别名等bash特有语法,必须使用bash解释器:
bash script.sh
3、赋予可执行权限后通过./运行
先为脚本添加x权限:
chmod +x script.sh
再执行:
./script.sh
4、创建.desktop启动器实现图形界面双击启动
新建文本文件如run-script.desktop,内容如下:
[Desktop Entry]
Version=1.0
Name=运行脚本
Exec=bash -c "cd /path/to/script && ./script.sh"
Terminal=true
Type=Application
Icon=utilities-terminal
保存后执行:
chmod +x run-script.desktop
二、运行.py脚本的多种方式
银河麒麟桌面版通常预装Python 3.x,但系统PATH可能不包含虚拟环境路径或第三方安装路径,直接调用python命令易因解释器版本或模块缺失失败,需按实际环境选择对应方式。
1、使用系统默认python3解释器运行
确认已安装python3:
python3 --version
执行脚本:
python3 script.py
2、在conda虚拟环境中运行
若使用Miniforge或Anaconda管理环境,需先初始化conda并激活:
source /opt/miniforge3/etc/profile.d/conda.sh && conda activate myenv
再执行:
python script.py
3、通过绝对路径调用特定Python解释器
避免PATH污染导致的命令错位,例如:
/opt/miniforge3/envs/mypythonenv/bin/python script.py
4、创建.desktop文件双击运行Python应用
适用于带GUI的PySide6/PyQt程序,文件内容示例:
[Desktop Entry]
Version=1.0
Name=我的Python应用
Exec=bash -c "source /opt/miniforge3/etc/profile.d/conda.sh && conda activate py3117 && cd /home/user/app && python main.py"
Terminal=false
Type=Application
Icon=/home/user/app/icon.png
赋权后:
chmod +x app.desktop
三、解决常见执行失败问题
脚本无法运行常源于解释器路径错误、权限不足、环境变量缺失或Qt等依赖库未就绪,需分层排查。
1、检查脚本首行shebang是否匹配可用解释器
例如#!/usr/bin/env bash或#!/usr/bin/python3,避免使用不存在的路径如#!/bin/python
2、验证脚本文件权限是否含x位
执行:
ls -l script.sh
若无“x”,则补权:
chmod u+x script.sh
3、确认所需命令在当前PATH中可访问
在脚本内添加调试语句:
echo $PATH && which python3 && python3 --version
4、处理Qt平台插件缺失问题(如PyQt5/PySide6报xcb错误)
安装缺失依赖:
sudo apt install libxkbcommon-x11-0


















