当前位置: 首页 > news >正文

Windows系统PyCharm右键运行.sh文件

 在参考了Windows系统下pycharm运行.sh文件,执行shell命令_shell在pycharm-CSDN博客

和深度学习:PyCharm中运行Bash脚本_pycharm bash-CSDN博客

配置了右键执行.sh文件之后,发现在Windows的PyCharm中直接右键运行sh文件,存在如下问题:

1. 有些命令在Linux中能正常运行,Windows中却不能,例如xargs、source、&&等

2. 即使配置成sh.exe也只能通过在Terminal中输入脚本路径来运行它,无法做到在左侧文件导航目录那里,点右键直接运行

===========================

最终,我把所有.sh脚本全部,全部改成了.py文件,然后使用subprocess.run来运行shell命令。

例如:

原文件 -- scripts/format.sh

#!/bin/sh -e
set -x[ -f pyproject.toml ] || ([ -f ../pyproject.toml ] && cd ..)SKIP_MYPY=1 pdm run fast lint

修改后 -- scripts/format.py

#!/usr/bin/env python
import os
import shlex
import subprocess
import sys
from pathlib import Pathwork_dir = Path(__file__).parent.resolve().parent
if Path.cwd() != work_dir:os.chdir(str(work_dir))cmd = "pdm run fast lint"
r = subprocess.run(shlex.split(cmd), env=dict(os.environ, SKIP_MYPY="1"))
sys.exit(None if r.returncode == 0 else 1)

修改之后,就可以直接右键运行了,如下图:

 

更多示例,可以通过如下方式查看:

git clone git@github.com:waketzheng/fast-dev-cli.git
cd fast-dev-cli
git diff v0.10.0 v0.10.1 scripts/

注:如果要执行的shell命令是以python开头的,如`python -m fast_dev_cli lint`,若系统中有多个版本的python解释器,最好把其中的python改成Path(sys.executable),如:

#!/usr/bin/env python
import shlex
import subprocess
import sys
from pathlib import Pathcmd = "python -m fast_dev_cli lint"
command = shlex.split(cmd)
r = subprocess.run([Path(sys.executable), *command[1:]])
sys.exit(None if r.returncode == 0 else 1)


http://www.mrgr.cn/news/57174.html

相关文章:

  • TypeScript系列:第五篇 - 断言守卫(as、satisfies、is、as const)
  • 大厂面试真题-了解云原生吗,简单说一下docker和k8s
  • STM32—旋转编码器控制直流电机(标准库)
  • C# Linq常用方法
  • Jmeter 实战 JDBC配置
  • AI大模型平台详解与AI创作示范
  • 海报在线制作系统小程序源码
  • QPainter抗锯齿设置
  • 动态规划之简单多状态 dp 问题(上)
  • 【Qt】控件——Qt多元素控件、常见的多元素控件、多元素控件的使用、List Widget、Table Widget、Tree Widget
  • socket套接字
  • Spring Cloud --- Sentinel 授权规则
  • 入门介绍(一):脉冲神经网络(SNN)
  • Python 实现 excel 数据过滤
  • Java学习教程,从入门到精通,Java 基本数据类型(7)
  • 鸿蒙应用的Tabs 组件怎么使用
  • c++的头文件到底应该怎么写?
  • 【编程语言】Kotlin快速入门 - 高阶函数与运算符重载
  • 均匀随机掉落算法
  • 梦开始的地方 -- 两数求和
  • c++查看运行时类型
  • Thread类
  • react优化
  • Napkins:开源 AI 开发工具,实现截图或线框图到网页应用的快速转换
  • konva不透明度,查找,显示,隐藏
  • vTESTstudio系列14--vTESTstudio中自定义函数介绍1