【问题标题】:How to prefix file with custom commands when debugging in PyCharm?在 PyCharm 中调试时如何使用自定义命令为文件添加前缀?
【发布时间】:2020-04-28 08:47:36
【问题描述】:

这个问题与this one 非常相似,但针对的是 PyCharm。

我需要在我的脚本中使用aws-vault 来访问AWS 资源,但这在PyCharm 调试模式下似乎是不可能完成的。它提供了输入脚本路径、参数、环境变量的能力,还有外部工具功能,但这些都不起作用。

这是在 shell 中工作的格式:

aws-vault exec ${AWS_PROFILE} -- script.py

我认为通过使用外部工具并将程序设置为“aws-vault”并将其参数设置为“exec your-profile -- $FilePath$”,我几乎已经找到了解决方案,但它想运行$FilePath$ 中的脚本,完成并仅在完成后运行 PyCharm 中的调试脚本(与 $FilePath$ 插入的脚本相同)。

在我的情况下,它的工作方式是在调试模式下结合外部工具运行所需的脚本,因此脚本将进入外部工具的参数并作为一个命令运行。

有一些方法可以解决这个问题,方法是从命令行启动 PyCharm,并以 aws-vault 作为前缀,或编辑其 .desktop 文件并将前缀直接写入 Exec 字段,但当 AWS 配置文件有需要改变。

任何想法都将不胜感激,谢谢。

【问题讨论】:

    标签: python amazon-web-services pycharm


    【解决方案1】:

    我可以通过在 PyCharm 中安装 envfile 插件来做到这一点。此插件可以在启动进程时读取 .env 文件。基本上我做了以下事情:

    1. 创建一个生成 .env 文件的脚本 envfile.env 并将该脚本命名为 generate.sh
    2. 这个generate.sh 脚本是一个shell 脚本,它基本上是:aws-vault exec $AWS_PROFILE -- env | grep AWS_ > envfile.env,所以所有的aws 凭据都在envfile.env 中。如果需要,可以添加其他环境变量。
    3. 至少执行一次上述命令。
    4. 在pycharm中安装envfile插件。
    5. 在运行配置中,会出现一个带有“EnvFile”的新选项卡。在此选项卡中,启用 EnvFile。添加生成的envfile.env(见上)。
    6. 执行工具/外部工具并为generate.sh 创建一个外部工具。这样您就可以从 PyCharm 执行脚本。
    7. 再次在 Run 配置中添加一个 Before Launch 以执行外部工具 generate.sh

    警告,临时 aws-creds 是明文envfile.env

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-21
      • 2021-09-11
      • 2021-12-19
      • 1970-01-01
      • 2021-11-01
      • 2019-10-26
      • 2020-03-18
      • 1970-01-01
      相关资源
      最近更新 更多