DEV Community

Cover image for Virtual Environments: My "Aha!" Moment
Ajisafe Victor Oluwapelumi
Ajisafe Victor Oluwapelumi

Posted on

Virtual Environments: My "Aha!" Moment

This is going to seem weird, but I have seen "virtual environments" flying around since I started coding in 2022. Yet, I only just got the hang of them. For the longest time, they looked like some overly complex sorcery, and I would shy away every time someone mentioned them.

Fast forward to now, I am sitting here wondering how I have been surviving without them all this time.

Do not get me wrong, I had used virtual environments before. I knew how to spin one up when following tutorials, but it was always just one of those "do this because they said so" moments. I never really understood the power they wielded. But recently? Oh boy, things changed! I finally hacked how powerful they can be when properly integrated into a project, and now I cannot imagine coding without them.

So, here is how I have been rolling with virtual environments lately.

What Even Is a Virtual Environment?

If you are like how I used to be, you might have nodded along when people talked about virtual environments without actually knowing what they were. A virtual environment is basically a self-contained workspace where you can install project-specific dependencies without messing up your system-wide Python setup.

Think of it like a bubble for your project, everything it needs stays inside, away from global Python, keeping things clean and conflict-free. No more worrying about breaking other projects because some library decided to update itself to an incompatible version.

A meme using the

How To Setup Virtual Environments

1. Create a virtual environment

python -m venv my_env 
Enter fullscreen mode Exit fullscreen mode

This creates a new directory my_env, which holds all the virtual environment goodies.

2. Activate it

  • On Windows:
  my_env\Scripts\activate
Enter fullscreen mode Exit fullscreen mode
  • On macOS/Linux:
  source my_env/bin/activate
Enter fullscreen mode Exit fullscreen mode

Once activated, your terminal will show (my_env), meaning you are now inside the isolated environment.

3. Install Dependencies

pip install requests flask
Enter fullscreen mode Exit fullscreen mode

Boom! These packages are now installed only inside my_env, not system-wide.

4. Deactivate When Done

deactivate
Enter fullscreen mode Exit fullscreen mode

This takes you back to normal, global Python.

A meme with the caption

Why You Should Use Virtual Environments

  • No More "It Works on My Machine" Nightmares - With a virtual environment, dependencies are locked to specific versions, so no more "why does it work for you but not for me?"
  • Easy Project Switching - One can now hop between projects without dependency conflicts.
  • Better Collaboration - When sharing code, others can recreate exact environment using a requirements.txt file:
  pip install -r requirements.txt
Enter fullscreen mode Exit fullscreen mode

Now that I have finally embraced virtual environments, I cannot believe I was coding without them for so long. If you are like I was, seeing people talk about them but never really using them, trust me, it is worth the 5 minutes to set up. Your projects (and future self) will thank you!

Top comments (1)

Collapse
 
karin1986 profile image
Karin

An ven is actually like Docker, it "contains" your application isolated from other applications or projects helping to avoid run time conflicts, it is also a safety measure agains hacker attacks. Great article. Greetings from the Netherlands:)