我正在尝试设置 PyCharm 来调用 shell 脚本,而不是 python,作为运行选项。这可能吗?在默认选项中,我只有 Python、Python 文档和 Python 测试。在专业版中,我还拥有 Django 和其他版本。然而,它们都将 python 作为组合框中的解释器,据我所知,它们无法更改。
如果您想在 PyCharm 中看到这样的功能,请投票 IDEA-112256 “命令行”运行配置功能请求。
运行/调试配置部分列出了所有支持的运行/调试配置类型,并且确实不支持 shell 脚本。 但是,您也许可以通过安装插件来添加此类支持。例如,如果您对 bash 脚本感兴趣,可以使用 BashSupport 插件添加对在运行/调试配置中运行 shell 脚本的支持。
来自插件主页:
BashSupports 可以直接在 IntelliJ 中运行脚本。您可以创建 Bash 脚本的新运行配置。在这里你可以设置哪个 解释器用于运行它。每当执行脚本时 输出被记录。如果 Bash 打印出语法错误,则错误的 可单击各行跳转到错误位置。
对于 Windows,有 CmdSupport 插件,它提供了运行 .cmd 脚本的操作。然而它似乎不支持运行诸如运行/调试配置之类的脚本。
作为解决方法,您可以使用 Python 运行/调试配置,指定要运行的一些虚拟(空)Python 文件,并使用启动前选项指定外部工具,并在添加/配置此外部工具时指定脚本的路径。请参阅 在 IntelliJ IDEA 中,如何创建一个键绑定来执行以当前文件作为参数的 shell 脚本? 了解详细信息。
由于 PyCharm 基于 IntelliJ 的 IDEA 平台,因此问题 IntelliJ IDEA:将 shell 脚本作为运行/调试配置运行 非常相关。
说到运行/调试配置,您可能会对插件将配置作为操作感兴趣
(...) 提供了一种将运行配置用作工具栏上的按钮的方法。 或者分配快捷方式来执行特定的运行配置。
这确实是一个缺失的功能,通常应被视为基本功能。有两个选择
首先,我尝试创建一个标准(空)Python 配置并使用“启动前”->外部工具选项,因此您必须使用工具设置创建一个新的外部工具定义:
这个解决方案的烦人之处在于,“外部工具”标准输出被重定向到控制台日志窗口中的一个额外选项卡,当之后执行虚拟 Python 配置时,该选项卡立即进入后台。
我认为最简单的方法是编写一个调用 .bat 文件的 python 脚本,然后运行它:
from subprocess import Popen
p = Popen("batch.bat", cwd=r"C:\Path\to\batchfolder")
stdout, stderr = p.communicate()
另一个 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 镜像中使用解释器时使用了这个解决方案。