How to pass an environment variable as a command line parameter in Run/Debug configuration in PyCharm?

StackOverflow https://stackoverflow.com/questions/23663475

Question

I am trying to learn PyCharm, need to pass an environment variable as a command line parameter to my process, e.g. execute an equivalent of myScript.py -u $myVar on Linux, or myScript.py -u %myVar% on Windows.

How do I specify that in the PyCharm configuration? I don't want my script to depend on the name myVar, just on the content of that environment variable.

Was it helpful?

Solution

in PyCharm Run/Debug configuration for "Script Parameters:" Enter

-u ${myVar}

Note: This will work only for existing env. variables but not for env. variables that you set up in the PyCharm Run/Debug configuration. For that to work, you will need to look into "Before Launch" configuration

OTHER TIPS

I wasn't able to define new env vars for passing them to Run/Debug configuration (as suggested by @alok-a), even if defining them on a script executed in "Before Launch". For notice, I'm using PyCharm 2018.3.4.

The workaround that works for me is to create a python script that prepare the full command line and calls it using the subprocess module.

import subprocess

# Build params line

cmd = ["python", script_path] + params.split()

subprocess.run(cmd)

Set your breakpoints in the target script (the one indicated by script_path).

Run the newly created wrapper script and have a happy debugging. Not a charming solution, but it works at least.

Go to Edit configurations > Environment variables. Add or edit.enter image description here

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top