我正在尝试设置PyCharm来调用shell脚本而不是python作为运行选项。这可能吗?在默认选项中,我只有Python,Python文档和Python测试。有了专业版,我也有Django和其他人。然而,他们都将python作为组合框中的解释器,并且就我所见,它们无法改变。
答案 0 :(得分:19)
如果您想在PyCharm中看到此类功能,请对IDEA-112256 'Command Line' Run Configuration功能请求进行投票。
Pycharm的在线帮助的Run/Debug Configurations部分列出了所有支持的运行/调试配置类型,并且确实不支持shell脚本。 但是,您可以通过安装插件来添加此类支持。例如,如果您对bash脚本感兴趣,可以使用BashSupport插件添加对运行/调试配置中运行shell脚本的支持。
来自插件'主页:
BashSupports可以直接在IntelliJ中运行脚本。你可以创建 Bash脚本的新运行配置。在这里你可以设置哪个 解释器用于运行它。每当脚本执行时 记录输出。如果Bash打印出语法错误,那么错误 可以单击这些行以跳转到错误的位置。
对于Windows,CmdSupport插件提供了运行 .cmd 脚本的操作。但它似乎不支持运行诸如Run / Debug配置之类的脚本。
作为一种解决方法,您可以使用Python运行/调试配置,指定一些虚拟(空)Python文件运行并使用启动前选项指定外部工具并指定路径添加/配置此外部工具时添加到脚本。有关详细信息,请参阅In IntelliJ IDEA, how can I create a key binding that executes a shell script with the current file as a parameter?。
由于PyCharm基于IntelliJ的IDEA平台,问题IntelliJ IDEA: Running a shell script as a Run/Debug Configuration非常相关。
说到运行/调试配置,您可能会对插件Run Configuration as Action感兴趣
(...)提供了一种将运行配置用作工具栏上的按钮的方法。 或者指定快捷方式来执行特定的运行配置。
答案 1 :(得分:4)
这实际上是一个缺失的功能,通常应被视为基本功能。有两个选项
首先,我尝试创建标准(空)Python配置并使用"在启动之前" - >外部工具选项,因此您必须使用工具设置创建新的外部工具定义:
这个解决方案令人讨厌的是,"外部工具"标准输出被重定向到控制台日志窗口中的一个额外选项卡,当后面执行虚拟Python配置时,它会立即进入后台。
答案 2 :(得分:2)
我认为最简单的方法是编写一个调用.bat文件的python脚本,然后运行它:
from subprocess import Popen
p = Popen("batch.bat", cwd=r"C:\Path\to\batchfolder")
stdout, stderr = p.communicate()
答案 3 :(得分:0)
对此的另一种解决方案是更改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映像中使用解释器时,我使用了此解决方案。