如何在 PyCharm 运行配置中运行 shell 脚本而不是 python?

问题描述 投票:0回答:5

我正在尝试设置 PyCharm 来调用 shell 脚本,而不是 python,作为运行选项。这可能吗?在默认选项中,我只有 Python、Python 文档和 Python 测试。在专业版中,我还拥有 Django 和其他版本。然而,它们都将 python 作为组合框中的解释器,据我所知,它们无法更改。

pycharm
5个回答
24
投票

如果您想在 PyCharm 中看到这样的功能,请投票 IDEA-112256 “命令行”运行配置功能请求。


Pycharm 在线帮助的

运行/调试配置部分列出了所有支持的运行/调试配置类型,并且确实不支持 shell 脚本。 但是,您也许可以通过安装插件来添加此类支持。例如,如果您对 bash 脚本感兴趣,可以使用 BashSupport 插件添加对在运行/调试配置中运行 shell 脚本的支持。

来自插件主页:

BashSupports 可以直接在 IntelliJ 中运行脚本。您可以创建 Bash 脚本的新运行配置。在这里你可以设置哪个 解释器用于运行它。每当执行脚本时 输出被记录。如果 Bash 打印出语法错误,则错误的 可单击各行跳转到错误位置。

对于 Windows,有 CmdSupport 插件,它提供了运行 .cmd 脚本的操作。然而它似乎不支持运行诸如运行/调试配置之类的脚本。

作为解决方法,您可以使用 Python 运行/调试配置,指定要运行的一些虚拟(空)Python 文件,并使用启动前选项指定外部工具,并在添加/配置此外部工具时指定脚本的路径。请参阅 在 IntelliJ IDEA 中,如何创建一个键绑定来执行以当前文件作为参数的 shell 脚本? 了解详细信息。

由于 PyCharm 基于 IntelliJ 的 IDEA 平台,因此问题 IntelliJ IDEA:将 shell 脚本作为运行/调试配置运行 非常相关。


说到运行/调试配置,您可能会对插件将配置作为操作感兴趣

(...) 提供了一种将运行配置用作工具栏上的按钮的方法。 或者分配快捷方式来执行特定的运行配置。


6
投票

这确实是一个缺失的功能,通常应被视为基本功能。有两个选择

  1. 首先,我尝试创建一个标准(空)Python 配置并使用“启动前”->外部工具选项,因此您必须使用工具设置创建一个新的外部工具定义:

    • 程序:cmd.exe
    • 参数:/C your-batch-file.bat
    • 工作目录 $ProjectFileDir$ (在我的例子中 $ProjectPath$ 为空)

    这个解决方案的烦人之处在于,“外部工具”标准输出被重定向到控制台日志窗口中的一个额外选项卡,当之后执行虚拟 Python 配置时,该选项卡立即进入后台。

  2. 第二种也是更好的方法是使用 python 来执行命令。通常我总是使用 subprocess 模块,但在这种情况下 os.system() 是一个很好且最小的解决方案。 python 运行配置如下所示
    • 脚本:(空)
    • 参数:-c "import os; os.system('your-batch-file')"
    • 工作目录:(选择项目目录,遗憾的是这里没有宏)

2
投票

我认为最简单的方法是编写一个调用 .bat 文件的 python 脚本,然后运行它:

from subprocess import Popen

p = Popen("batch.bat", cwd=r"C:\Path\to\batchfolder")
stdout, stderr = p.communicate()

1
投票

另一个 hacky 解决方案是更改 PyCharm 配置文件夹中的

config/options/jdk.table.xml
文件。您只需在
jdks
列表中添加另一个条目即可:

<jdk version="2">
  <name value="Python 3.7 (docker)" />
  <type value="Python SDK" />
  <version value="Python 3.7.0" />
  <homePath value="/path/to/your/shell.sh" />
  <roots>
    <classPath>
      <root type="composite" />
    </classPath>
    <sourcePath>
      <root type="composite" />
    </sourcePath>
  </roots>
  <additional />
</jdk>

之后,只需为您的项目选择解释器,您就可以使用此 shell 作为您的解释器。我在 docker 镜像中使用解释器时使用了这个解决方案。


0
投票

刚刚看到这篇文章...从今天(2024 年)开始,在 PyCharm run 命令中调用 shell 脚本是可能且非常容易的。我有 PyCharm Professional,所以我无法判断免费版本是否可用。

  1. 打开运行/调试配置(例如,单击“播放”按钮左侧的菜单 > 编辑配置...)

2.点击加号并选择“Shell Script”

© www.soinside.com 2019 - 2024. All rights reserved.