首页 > 解决方案 > windows pycharm 程序参数中未评估的环境变量

问题描述

尝试通过 pycharm 运行数据流快速入门示例中的 wordcount.py 示例,但在解析包含环境变量的命令行参数时遇到了问题。

我如何设置我的环境变量

|我如何指定参数

当我设置环境变量并在终端中使用相同的参数运行脚本时,它工作得很好:

python wordcount.py --input gs://dataflow-samples/shakespeare/kinglear.txt --output gs://%BUCKET%/wordcount/outputs --runner DataflowRunner --project %PROJECT% --temp_location gs://%BUCKET%/tmp/

我尝试了以下解析环境变量的变体 - 没有一个有效:${ENV}、$ENV$、%ENV%。

我正在使用 Windows 10,PyCharm 版本 2019.3.1。

标签: pythonwindowspycharmenvironment-variables

解决方案


当您将环境变量作为参数(例如,)的值传递--project--temp_locationPycharm 配置时,它将这些变量作为“字符串”值而不是您在第一个屏幕截图“用户环境变量”中设置的真实值。我在 StackOverflow 上快速搜索了许多相关线程,但没有找到解决方案,所以我想出了自己的解决方案,即使用您当前的设置并在解析代码中的参数后替换值:

# Args parsing here

if args.project == "${PROJECT}":
    args.project = os.environ.get("PROJECT")
    args.temp_location = args.temp_location.replace("${BUCKET}", os.environ.get("BUCKET"))

但是,我认为您应该考虑在何时使用它

  • 你使用 PyCharm 比使用终端更频繁。
  • 有许多参数引用环境变量,您必须针对不同的设置更改它们的值。

希望 Pycharm 能尽快支持这个功能。


推荐阅读