LearninBits

How to Run Python Scripts on Linux: A Beginner’s Guide

Hey there, future Linux command-line ninjas! 🐧 Ever wondered how to run Python scripts on a Linux system? 

Whether you’re a new Python developer, a Linux enthusiast, or a seasoned programmer just getting your feet wet with this combination, this guide is for you. 

We’ll explore how you can become proficient at running Python scripts on Linux, from basic methods to more advanced techniques. Think of this guide as your GPS through the Linux command-line maze—making sure you reach your destination without getting lost.

Prerequisites

Before we hit the road, let’s make sure your vehicle is ready for the journey.

1. Check if Python is Installed

Linux is like a Swiss Army knife for developers—it usually comes with Python pre-installed. To check if Python is already installed, open your terminal and type:

python --version

Or

python3 --version

If you see a version number, buckle up; you’re good to go! If not, you’ll need to install Python. On Ubuntu, you can do this with the following command:

sudo apt-get install python3

2. Choose Your Text Editor

You’ll need a cozy place to write your Python scripts. In the Linux world, you’ve got plenty of options! You can go old-school with text editors like Vim or Nano, or choose modern editors like Gedit or Visual Studio Code. Pick the one that feels like home to you. To install any of these, you can typically use your package manager, like so:

sudo apt-get install vim

Or

sudo apt-get install code

Alright, now that your toolbox is ready, let’s dive into the various ways you can run Python scripts on Linux.

Basic Method: Using the Terminal

1. Open a Terminal

First things first, let’s get our hands dirty with the Linux terminal. Click on your Applications menu and find the Terminal, or simply press Ctrl + Alt + T to open it up. The terminal is like your control room in Linux; it’s where all the magic happens!

2. Navigate to the Script’s Directory

Imagine your computer as a big file cabinet, and you’re looking for a specific folder (your script’s directory). In the terminal, you’d use the cd (Change Directory) command to find it:

cd path/to/your/script

3. Make the Script Executable

In Linux, files aren’t born ready to be executed; you’ve got to give them permission first. Think of it like turning a regular piece of paper into a magical scroll. Use the chmod command to make your Python script executable:

chmod +x your_script.py

4. Run the Script

Now, you’re all set to unleash the power of your Python script. Type this in your terminal:

python3 your_script.py

Voila! You should see the output of your script displayed in the terminal, as if your magical scroll just came to life.

Alternate Method: Adding a Shebang Line

1. What is a Shebang Line?

A “shebang” is a special line at the top of your script that tells Linux which program to use to run the file. It’s like putting a label on your magical scroll, saying “Only to be read by Wizard Python.”

2. Add the Shebang Line to Your Script

Open your script in your chosen text editor and add this line at the very top:

#!/usr/bin/env python3

This tells Linux to use Python 3 to run your script.

3. Make the Script Executable

Just like before, you’ll need to make your script executable (You need to do this only if you haven’t already made the script executable):

chmod +x your_script.py

4. Run the Script Directly

Now, instead of invoking the Python interpreter, you can run your script directly like this:

./your_script.py

And there you go! Your script will run just as it did before, but you’ve skipped the step of calling Python explicitly. It’s like having a magical scroll that reads itself!

Running Scripts as System Services

Sometimes, you’ll want your Python script to be more than just a magical scroll. You might want it to be a guardian spirit that watches over your computer, starting automatically when you boot up. In Linux lingo, that’s called running your script as a “system service.”

1. Create a Service File

Start by creating a new file ending with .service. You can think of this file as your script’s ID badge that grants it access to the special realm of system services.

Here’s how the file might look:

[Unit]

Description=My Python Guardian Spirit

After=network.target

[Service]

ExecStart=/usr/bin/python3 /path/to/your_script.py

WorkingDirectory=/path/to/your_script

[Install]

WantedBy=default.target

Replace the paths with those relevant to your script.

2. Move the Service File to System Directory

Now, give your guardian spirit its ID badge by moving the .service file into the system directory:

sudo mv your_script.service /etc/systemd/system/

3. Reload and Start the Service

Tell the Linux system manager, systemd, that a new guardian spirit has joined the ranks:

sudo systemctl daemon-reload

sudo systemctl start your_script

Congratulations, your Python script is now a full-fledged system service!

When Would You Use System Services? Real-Life Examples

1. Web Server Monitoring

Imagine you’ve built a Python script that checks the health of your web server. Rather than running it manually, you could set it up as a system service to automatically monitor the server around the clock. If the server goes down, your script could alert you via email or even attempt to restart the server.

2. Data Backup

You could have a Python script that backs up important files to a cloud storage service every night. By setting it up as a system service, you ensure that it runs reliably even if you forget about it. Think of it as a diligent librarian who always makes sure that valuable manuscripts (your data) are safely stored away.

3. IoT Devices

If you’re using Python to control Internet of Things (IoT) devices like smart bulbs or thermostats, you would want the script to start automatically when your Raspberry Pi or other Linux-based device boots up. Your Python script then becomes like the conductor of an orchestra, making sure every device plays its part flawlessly.

4. User Activity Logging

For cybersecurity, you might create a Python script that logs user activity on a system. By making it a service, you ensure that the script is always running, quietly monitoring and keeping a record of who does what, similar to a security camera in a store.

5. Automated Reports

Say you’re a data analyst who needs to generate performance reports from a database every week. A Python script could pull the data, create the report, and email it to your boss. As a system service, this script would become your automated personal assistant, handling tedious tasks while you focus on more important work.

These are just a handful of scenarios where running your Python script as a system service on Linux would be incredibly useful. It’s like giving your script a permanent job, with specific responsibilities, that it carries out autonomously.

Common Errors and Troubleshooting

Even guardian spirits encounter obstacles sometimes. Here are some common hurdles and how to overcome them:

1. “Permission Denied” Error

If you see this, it means your script didn’t have the magic permission to become executable. Use the chmod command again:

chmod +x your_script.py

2. Python Version Compatibility

If your script is acting weird, double-check if you’re using the right Python version. You can specify this in the terminal like so:

python2 your_script.py  # For Python 2

python3 your_script.py  # For Python 3

3. “Module Not Found” Error

If your script is looking for a magical spell that it can’t find (a Python module), you’ll need to install it. Use pip to add it to your toolkit:

pip install missing_module

4. Syntax Errors and Debugging

If you’re getting syntax errors, it’s like your magical scroll has a typo. Look closely at the error message; it will tell you where to find the mistake.

Conclusion

Congratulations, you’ve made it to the end of this guide! 🎉 By now, you should be well-equipped to run Python scripts on Linux, whether you’re a casual user or aspiring to be a Linux command-line ninja. We’ve covered the basics, the alternate shebang method, running your Python scripts as system services, and even tackled some common issues you might face along the way.

Additional Resources

Feel free to bookmark this guide and come back anytime you need a refresher. Keep exploring and don’t hesitate to put your newfound knowledge into practice!

Leave a Reply

Layer 1