Nov. 14, 2019

How To Run Your Python Scripts

Your Python code can be up on a code editor, IDE or a file. And, it won’t work unless you know how to execute your Python script.

In this blog post, we will take a look at 7 ways to execute Python code and scripts. No matter what your operating system is, your Python environment or the location of your code - we will show you how to execute that piece of code!

Table of Contents

  1. Running Python Code Interactively
  2. How are Python Script is Executed
  3. How to Run Python Scripts
  4. How to Run Python Scripts using Command Line
  5. How to Run Python Code Interactively
  6. Running Python Code from a Text Editor
  7. Running Python Code from an IDE
  8. How to Run Python Scripts from a File Manager
  9. How to Run Python Scripts from Another Python Script

Where to run Python scripts and how?

You can run a Python script from:

  1. OS Command line (also known as shell or Terminal)
  2. Run Python scripts with a specific Python Version on Anaconda
  3. Using a Crontab
  4. Run a Python script using another Python script
  5. Using FileManager
  6. Using Python Interactive Mode
  7. Using IDE or Code Editor

Running Python Code Interactively

To start an interactive session for Python code, simply open your Terminal or Command line and type in Python(or Python 3 depending on your Python version). And, as soon as you hit enter, you’ll be in the interactive mode.

Here’s how you enter interactive mode in Windows, Linux and MacOS.

Interactive Python Scripting Mode On Linux

Open up your Terminal.

It should look something like

   $ python
   Python 3.7.3 (default, Mar 27 2019, 22:11:17)
   [GCC 7.3.0] :: Anaconda, Inc. on linux
   Type "help", "copyright", "credits" or "license" for more information.

Enter the Python script interactive mode after pressing “Enter”.

Interactive Python Scripting Mode On Mac OSX

Launching interactive Python script mode on Mac OS is pretty similar to Linux. The image below shows the interactive mode on Mac OS.

Python on MacOSx

Interactive Python Scripting Mode On Windows

On Windows, go to your Command Prompt and write “python”. Once you hit enter you should see something like this:

Windows Interactive Mode for Python

Running Python Scripts Interactively

With interactive Python script mode, you can write code snippets and execute them to see if they give desired output or whether they fail.

Take an example of the for loop below.

Python Loop example

Our code snippet was written to print everything including 0 and upto 5. So, what you see after print(i) is the output here.

To exit interactive Python script mode, write the following:

     >>>exit()
   

And, hit Enter. You should be back to the command line screen that you started with initially.

There are other ways to exit the interactive Python script mode too. With Linux you can simply to Ctrl + D and on Windows you need to press Ctrl + Z + Enter to exit.

Note that when you exit interactive mode, your Python scripts won’t be saved to a local file.

How are Python scripts executed?

A nice way to visualize what happens when you execute a Python script is by using the diagram below. The block represents a Python script (or function) we wrote, and each block within it, represents a line of code.  

Python function block

When you run this Python script, Python interpreter goes from top to bottom executing each line.

And, that’s how Python interpreter executes a Python script.

But that’s not it! There’s a lot more that happens.

Flow Chart of How Python Interpreter Runs Codes

Step 1: Your script or .py file is compiled and a binary format is generated. This new format is in either .pyc or .pyo.

python compiler

Step 2: The binary file generated, is now read by the interpreter to execute instructions.

Think of them as a bunch of instructions that leads to the final outcome.

There are some benefits of inspecting bytecode. And, if you aim to turn yourself into a pro level Pythonista, you may want to learn and understand bytecode to write highly optimized Python scripts.

You can also use it to understand and guide your Python script’s design decisions. You can look at certain factors and understand why some functions/data structures are faster than others.

How to run Python scripts?

To run a Python script using command line, you need to first save your code as a local file.

Let’s take the case of our local Python file again. If you were to save it to a local .py file named python_script.py.

There are many ways to do that:

  1. Create a Python script from command line and save it
  2. Create a Python script using a text editor or IDE and save it

Saving a Python script from a code editor is pretty easy. Basically as simple as saving a text file.

But, to do it via Command line, there are a couple of steps involved.

First, head to your command line, and change your working directory to where you wish to save the Python script.

Once you are in the right directory, execute the following command in Terminal:

    $ sudo nano python_script.py
    

Once you hit enter, you’ll get into a command line interface that looks something like this:

python script example

Now, you can write a Python code here and easily run it using command line.

How to run Python scripts using command line?

Python scripts can be run using Python command over a command line interface. Make sure you specify the path to the script or have the same working directory. To execute your Python script(python_script.py) open command line and write python3 python_script.py

Replace python3 with python if your Python version is Python2.x.

Here’s what we saved in our python_script.py

    for i in range(0,5):
               print(i)
   

And, the output on your command line looks something like this

execute python script

Let’s say, we want to save the output of the Python code which is 0, 1, 2, 3, 4 - we use something called a pipe operator.

In our case, all we have to do is:

    $python python_script.py > newfile.txt
   

And, a file named “newfile.txt” would be created with our output saved in it.

How to run Python code interactively

There are more than 4 ways to run a Python script interactively. And, in the next few sections we will see all major ways to execute Python scripts.

Using Import to run your Python Scripts

We all use import module to load scripts and libraries extremely frequently. You can write your own Python script(let’s say code1.py) and import it into another code without writing the whole code in the new script again.

Here’s how you can import code1.py in your new Python script.

   >>> import code1
   

But, doing so would mean that you import everything that’s in code1.py to your Python code. That isn’t an issue till you start working in situations where your code has to be well optimized for performance, scalability and maintainability.

So, let’s say, we had a small function inside code1 that draws a beautiful chart e.g. chart_code1(). And, that function is the only reason why we wish to import the entire code1.py script. Rather than having to call the entire Python script, we can simply call the function instead.

Here’s how you would typically do it

   >>> from code1 import chart_code1
   

And, you should be able to use chart_code1 in your new Python script as if it were present in your current Python code.

Next, let’s look at other ways to import Python code.

Using and importlib to run Python code

import_module() of importlib allows you to import and execute other Python scripts.

The way it works is pretty simple. For our Python script code1.py, all we have to do is:

   import importlib
   import.import_module(‘code1’)
   

There’s no need to add .py in import_module().

Let’s go through a case where we have complex directory structures and we wish to use importlib. Directory structure of the Python code we want to run is below:

   level1

    |

    + - __init__.py

      - level2

        |

        + - __init__.py

          - level3.py

In this case if you think you can do importlib.import_module(“level3”), you’ll get an error. This is called relative import, and the way you do it is by using a relative name with anchor explicit.

So, to run Python script level3.py, you can either do

    importlib.import_module(“.level3”, “level1.level”)
   
or you can do
    importlib.import_module(“level1.level2.level3”).
   

Run Python code using runpy

Runpy module locates and executes a Python script without importing it. Usage is pretty simple as you can easily call the module name inside of run_module().

To execute our code1.py module using runpy. Here’s what we will do.

   >>> import runpy
   >>> runpy.run_module(mod_name=”code1”)
   

Run Python Code Dynamically

We are going to take a look at exec() function to execute Python scripts dynamically. In Python 2, exec function was actually a statement.

Here’s how it helps you execute a Python code dynamically in case of a string.

   >>> print_the_string  = ‘print(“Dynamic Code Was Executed”)’
   >>>  exec(print_the_string)
   

Dynamic Code Was Executed

However, using exec() should be a last resort. As it is slow and unpredictable, try to see if there are any other better alternatives available.

Running Python Scripts from a Text Editor

To run Python script using a Python Text Editor you can use the default “run” command or use hot keys like Function + F5 or simply F5(depending on your OS).

Here’s an example of Python script being executed in IDLE.

execute python from text editor

Source: pitt.edu

However, note that you do not control the virtual environment like how you typically would from a command line interface execution.

That’s where IDEs and Advanced text editors are far better than Code Editors.

Running Python Scripts from an IDE

When it comes to executing scripts from an IDE, you can not only run your Python code, but also debug it and select the Python environment you would like to run it on.

While the IDE’s UI interface may vary, the process would be pretty much similar to save, run and edit a code.

How to run Python scripts from a File Manager

What if there was a way to run a Python script just by double clicking on it? You can actually do that by creating executable files of your code. For example, in the case of Windows OS, you can simply create a .exe extension of your Python script and run it by double clicking on it.

How to run Python scripts from another Python script

Although we haven’t already stated this, but, if you go back up and read, you’ll notice that you can:

  1. Run a Python script via a command line that calls another Python script in it
  2. Use a module like import to load a Python script

That’s it!

Key Takeaway

  1. You can write a Python code in interactive and non interactive modes. Once you exit interactive mode, you lose the data. So, sudo nano your_python_filename.py it!
  2. You can also run your Python Code via IDE, Code Editors or Command line
  3. There are different ways to import a Python code and use it for another script. Pick wisely and look at the advantages and disadvantages.
  4. Python reads the code you write, translates it into bytecodes, which are then used as instructions - all of that happen when you run a Python script. So, learn how to use bytecode to optimize your Python code.

Recommended Python Training – DataCamp

For Python training, our top recommendation is DataCamp.

Datacamp provides online interactive courses that combine interactive coding challenges with videos from top instructors in the field.

Datacamp has beginner to advanced Python training that programmers of all levels benefit from.

 



Read more about:
Disclosure of Material Connection: Some of the links in the post above are “affiliate links.” This means if you click on the link and purchase the item, I will receive an affiliate commission. Regardless, PythonForBeginners.com only recommend products or services that we try personally and believe will add value to our readers.