Skip to main content

Python Virtual Environments

I learnt about this early in the Python Course. I filed it away in my brain. Now that I'm learning about Django, it has come up again and all I can think is Virtual Environment who?? So for the benefit of my future junior software developer self, a virtual environment is a tool that enables one to keep  dependencies required by different projects together by creating an environment for them.

In plain speak, I have a hypothetical box for Project A. It requires dependencies with specific versions- Dependency A ver 1.0, Dependency B ver 1.4, Dependency C ver 2.3.I put all these dependencies(with their specific versions) in that box. Now comes along Project B, which requires a different set of dependencies with different versions. Perhaps because the versions have since been updated. I store them all in hypothetical box 2. So each one of these hypothetical boxes is a virtual environment. It allows me to use different dependencies with my different projects because dependencies change with time. If we had to keep updating old code to match the new versions of dependencies, all we'll be doing is playing a neverending game of cat and mouse. And we're all too old for that shit :P
Image from here

Creating a Virtual Environment (using PyCharm)

Step 1: Check which version of Python you're using. Go to 'Command Prompt' and type 'python -V'. Initially, this didn't give me anything, so i just typed 'python'. This took me to the windows store and I downloaded Python. After the download, it worked as it should.

Step 2: Create the virtual environment. Go to your project folder and type 'virtualenv [name of virtual env]'. Once it says 'done.', you're good to go.

If you 'cd' (change directory) into that virtual env you just created, and 'dir' (list out all the files in it), you'll see a 'Scripts' directory. 'cd' into it and 'dir'. You will see a file named 'activate.bat'. That file will activate this particular virtual environment, i.e. if you run the activate.bat for any one of the particular virtual environments you have, you will be launching environment. 

Step 3: Activate the virtual env. To activate the virtual env, just type 'activate' in the script directory. If it worked correctly, you should see something like:
 (TECHPR~1) C:\Users\Student\Desktop\techproject\Scripts> 
The text encased in the brackets is the name of your virtual env. Now if you do any installations or make any changes, it will only affect that project.

**Shortcut to activate : go to the virtual env you created and type 'scripts\activate'

Step 4: Install stuff. Go back into the main virtual environment directory 'cd..' and type 'pip install [whatever you want to install]==[version number]  **note: disregard square brackets

 pip install django==2.0.7 
Step 5: Create a directory for all your code in the virtual env. 'mkdir [folder name]. This is the directory that will go live. In this example, we are using Django, so if you want to use the django library, you then go into the folder you have created and type 'django-admin startproject [name of project]'. Next, 'cd [name of project]' and then 'python manage.py runserver'. It will show you an IP address where you can view your project.
Starting development server at http://127.0.0.1:8000/
**To deactivate, ( Ctrl + C )  twice and then type 'deactivate'.

Step 6: Update changes made to model. Type 'python manage.py makemigrations'. Then type 'python manage.py migrate'. Now you can run your server with the updated changes :)


Comments

Popular posts from this blog

Certified CSS Surgeon

I've just been certified as a top notch CSS Surgeon 😹😹😹. Codepip has just officially launched and they're offering CSS Surgeon for free until the 1st of September. I've already finished Flexbox Froggy(Free) and Grid Garden(Also free). I really do enjoy the CSS games on this website. It has helped me better understand CSS. There is still so much to learn. I've been trying to create a simple language learning website and it has been a struggle. I'm using the most simple website layout and yet it's just kicking my butt(I'm looking at you Nav bar). I hope to add some Javascript to make it more interactive in the future. At one point I really wanted to throw in the towel because it felt like I would never get this. It's hard not to give up when there are so many hurdles to cross. Can I really be confident at coding after just a 6 month bootcamp?

Portfolio on GitHub

As part of the bootcamp, I've been building a portfolio website based on a template provided by the school. Honestly, I hate the template. It is hideous. But I guess it's a great starting point for someone who is unsure about what to do. It was also an opportunity for me to practice publishing a website online. Unfortunately, I had to pay for a webhosting service. After submitting my third update to my portfolio website, one of the instructors suggested that I could use GitHub Pages instead. *mindblown* This is amaziiiiing. And it's so simple. When I finally get down to creating my own portfolio from scratch, I am definitely going to put it up on GitHub instead. Also, speaking of GitHub, I'm slowly understanding how GitHub functions. It is taking me awhile. Especially because I don't use many of the functions that are available. I look forward to learning more and becoming a GitHub extraordinaire :D JK

Deviants in a normal world

It's definitely been a bit since I've seen this graphy. Anyone who has learnt about standard deviation knows this graph. Standard Deviation Standard deviation shows us how spread out all the values in a set are from the mean. The higher the standard deviation, the more spread out the values are over a wider range and the flatter this curve. In a normal distribution, most values are within 1 standard deviation from the mean(the green part of the graph). Apparently NumPy can calculate standard deviation too! import numpy numSet = [ *lots of numbers* ] numSetStdDev = numpy.std(numSet) Variance The variance also indicates how spread out the values in a set are. It measures the average degree to which each value differs from the mean. variance = standard deviation ^2 import numpy numSet = [ *lots of numbers * ] numSetVar = numpy.var(numSet) Source:  https://www.w3schools.com/python/python_ml_standard_deviation.asp