Executing Python Scripts through PowerShell: A Step-by-Step Guide

Written by Alex Marin · February 22nd, 2024

Running Python scripts from PowerShell is a powerful way to integrate Python's capabilities into a Windows environment. Before diving into how to execute a Python script from PowerShell, it's important to ensure Python is installed on your Windows machine.

Installing Python on Windows

If Python isn't already installed, typing `python` into the Command Prompt (CMD) will redirect you to the Microsoft Store, where you can download and install the latest release of Python.

Python app in the Microsoft Store

Once installed, typing `python` in CMD will successfully launch the Python interpreter.

Run python in CMD

Creating a Simple Python Script

Let’s start by creating a basic Python script that takes a command-line argument and prints it. Here's a simple example:

import sys
# Takes the first argument after the script name
input_arg = sys.argv[1]
print(f"Received argument: {input_arg}")

This script uses the `sys` module to access command-line arguments passed to the script. The script then prints the first argument (`sys.argv[1]`).

NoteYou can also check how to deploy and run a Python script on a Windows 10, 64-bit machine that doesn’t have Python installed.

Running the Python Script from PowerShell

To execute this Python script from PowerShell, the paths to the Python executable and the script file need to be specified correctly. Here’s how you can modify the provided PowerShell script for a Windows environment:

$pythonProgramPath = cmd /c "where python" '2>&1'
$pythonScriptPath = "C:\Path\To\Script\main.py" 
$arg = "hello"
$pythonOutput = & $pythonProgramPath $pythonScriptPath $arg
$pythonOutput

To get the path of your Python installation is quite easy as this usually reflects either:

  • C:\Python36
  • C:\Users\(Your logged in User)\AppData\Local\Programs\Python\Python36

To easily find where Python is installed, run the following command:

Where python

By defining the Python execution path dynamically with cmd /c "where python" '2>&1', we ensure the correct Python location is used.

Next, `$pythonScriptPath` holds the full path to the Python script you want to run, `main.py`.

`$arg`, is a variable that stores the argument we want to pass to our Python script. In this example, it's the string `"hello"`. Remember the script requires an argument to function correctly.

The `&` operator in PowerShell executes a command stored in a variable. Here, it runs the Python executable with the script path and argument as parameters.

The output from the Python script (`print` statement) is captured in the `$pythonOutput` variable in PowerShell.

`$pythonOutput` displays the result from the Python script in the PowerShell console.

Run python in powershell

Conclusion

Integrating Python scripts into PowerShell workflows allows you to leverage Python's extensive capabilities in a Windows environment.

By correctly setting up the paths and understanding how to pass arguments from PowerShell to Python, you can create powerful automation scripts and tools that combine the strengths of both languages. This approach is particularly useful for system administrators, developers, and IT professionals looking to streamline their workflows and automate repetitive tasks.

NoteJoin Our Tech CommunityElevate your tech game! Subscribe to our blog for succinct guides, expert insights, and the latest trends in application packaging.Subscribe Now!

Written by
See author's page
Alex Marin

Application Packaging and SCCM Deployments specialist, solutions finder, Technical Writer at Advanced Installer.

Comments: