Python is a versatile programming language that can be used for many different programming projects. First published in 1991 with a name inspired by the British comedy group Monty Python, the development team wanted to make Python a language that was fun to use. Easy to set up, and written in a relatively straightforward style with immediate feedback on errors, Python is a great choice for beginners and experienced developers alike. Python 3 is the most current version of the language and is considered to be the future of Python.
This article will guide you through installing Python 3 on your local Windows 10 machine and setting up a programming environment via the command line.
PrerequisitesYou will need a Windows 10 computer with administrative access that is connected to the internet.
Step 1 — Opening and Configuring PowerShell
We’ll be completing most of our installation and setup on a command-line interface, which is a non-graphical way to interact with your computer. That is, instead of clicking on buttons, you’ll be typing in text and receiving feedback from your computer through text as well. The command line, also known as a shell, can help you modify and automate many of the tasks you do on a computer every day, and is an essential tool for software developers.
PowerShell is a program from Microsoft that provides a command-line shell interface. Administrative tasks are performed by running cmdlets, which are pronounced command-lets, specialized classes of the .NET software framework that can carry out operations. Open-sourced in August 2016, PowerShell is now available across platforms, for both Windows and UNIX systems (including Mac and Linux).
To find Windows PowerShell, you can right-click on the Start menu icon on the lower left-hand corner of your screen. When the menu pops up, you should click on “Search,” then type “PowerShell” into the search bar. When you are presented with options, right-click on “Windows PowerShell,” the Desktop app. For our purposes, we’ll select “Run as Administrator.” When you are prompted with a dialogue box that asks “Do you want to allow this app to make changes to your PC?” click on “Yes.”
Once you do this, you’ll see a text-based interface that has a string of words that looks like this:
We can switch out of the system folder by typing the following command:
Then we’ll be in a directory such as
- cd ~
To continue with our installation process, we are going to set up some permissions through PowerShell. Configured to run in the most secure mode by default, there are a few levels of permissions that you can set up as an administrator:
- Restricted is the default execution policy, under this mode you will not be able to run scripts, and PowerShell will work only as an interactive shell.
- AllSigned will enable you to run all scripts and configuration files that are signed by a trusted publisher, meaning that you could potentially open your machine up to the risk of running malicious scripts that happen to be signed by a trusted publisher.
- RemoteSigned will let you run scripts and configuration files downloaded from the internet signed by trusted publishers, again opening your machine up to vulnerabilities if these trusted scripts are actually malicious.
- Unrestricted will run all scripts and configuration files downloaded from the internet as soon as you confirm that you understand that the file was downloaded from the internet. In this case no digital signature is required so you could be opening your machine up to the risk of running unsigned and potentially malicious scripts downloaded from the internet.
PowerShell will then prompt us to provide an execution policy, and since we want to use RemoteSigned, we’ll type:
- Set-ExecutionPolicy -Scope CurrentUser
Once we press
enterwe’ll be asked if we do want to change the execution policy. Type the letter
yfor “yes,” and allow the changes to take effect. We can confirm that this worked by asking for the current permissions across the machine by typing:
You should receive output that looks something like this:
- Get-ExecutionPolicy -List
This confirms that the current user can run trusted scripts downloaded from the internet. We can now move on to downloading the files we will need to set up our Python programming environment.
Step 2 — Installing the Package Manager ChocolateyA package manager is a collection of software tools that work to automate installation processes that include the initial installation, upgrading and configuring of software, and removing software as needed. They keep software installations in a central location and can maintain all software packages on the system in formats that are commonly used.
Chocolatey is a command-line package manager built for Windows that works like
apt-getdoes on Linux. Available in an open-source version, Chocolatey will help you quickly install applications and tools, and we will be using it to download what we need for our development environment.
Before we install the script, let’s read it to confirm that we are happy with the changes it will make to our machine. To do this, we will use the .NET scripting framework to download and display the Chocolatey script within the terminal window. We’ll create a WebClient object called
$script(you can call it whatever you want as long as you use
$as the first character), that shares Internet connection settings with Internet Explorer:
Let’s look at the options that we have available to us by piping the object to the
- $script = New-Object Net.WebClient
Get-Memberclass to return all members (properties and methods) of this WebClient object:
- $script | Get-Member
Snippet of Output
. . .
DownloadFileAsync Method void DownloadFileAsync(uri address, string fileName), void DownloadFileAsync(ur...
DownloadFileTaskAsync Method System.Threading.Tasks.Task DownloadFileTaskAsync(string address, string fileNa...
DownloadString Method string DownloadString(string address), string DownloadString(uri address) #method we will use
DownloadStringAsync Method void DownloadStringAsync(uri address), void DownloadStringAsync(uri address, Sy...
DownloadStringTaskAsync Method System.Threading.Tasks.Task[string] DownloadStringTaskAsync(string address), Sy…
. . .
Looking over the output, we can identify the
DownloadStringmethod that we can use to display the script and signature in the PowerShell window. Let’s implement this method:
After we inspect the script, we can install Chocolatey by typing the following into PowerShell:
- iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex
Invoke-WebRequestallows us to extract data from the web. This will pass the script to the
Invoke-Expressioncmdlet, which will execute the contents of the script, running the installation script for the Chocolatey package manager.
Allow PowerShell to install Chocolatey. Once it is fully installed, we can begin installing additional tools with the
If we need to upgrade Chocolatey at any time in the future, we can run the following command:
With our package manager installed, we can go on to install the rest of what we need for our Python 3 programming environment.
- choco upgrade chocolatey
Step 3 — Installing the Text Editor nano (Optional)We are now going to install nano, a text editor that uses a command line interface, which we can use to write programs directly within PowerShell. This is not a compulsory step, as you can alternatively use a text editor with a graphical user interface such as Notepad, but nano will get us more accustomed to using PowerShell.
Let’s use Chocolatey to install nano:
Here we used the
- choco install -y nano
-yflag so that we confirm automatically that we want to run the script without being prompted.
Once nano is installed, we will be able to use the
nanocommand to create new text files and will eventually use it to write our first Python program.
Step 4 — Installing Python 3Just like we did with nano above, we will use Chocolatey to install Python 3:
PowerShell will now install Python 3, generating output within PowerShell during that process.
- choco install -y python
Once the installation is finished, you can confirm that Python is installed by checking the version of Python available to you on your local machine:
You should get output such as:
- python -V
Alongside Python, pip will be installed, which will manage software packages for Python. Let’s ensure that pip is up-to-date by upgrading it:
With Chocolatey, we can call Python 3 with the
- python -m pip install --upgrade pip
pythoncommand. We will use the
-mflag to run the library module as a script, terminating the option list, and from there use
pipto install its upgrade.
Once Python is installed and pip updated, we can set up a virtual environment for our development projects.
Step 5 — Setting Up a Virtual EnvironmentNow that we have Chocolatey, nano, and Python installed, we can go on to create our programming environment with the venv module.
Virtual environments enable you to have an isolated space on your computer for Python projects, ensuring that each of your projects can have its own set of dependencies that won’t disrupt any of your other projects.
Setting up a programming environment provides us with greater control over our Python projects and over how different versions of packages are handled. This is especially important when working with third-party packages.
You can set up as many Python programming environments as you want. Each environment is basically a directory or folder in your computer that has a few scripts in it to make it act as an environment.
Choose which directory you would like to put your Python programming environments in, or create a new directory with
mkdir, as in:
Once you are in the directory where you would like the environments to live, you can create an environment by running the following command:
- mkdir Environments
- cd Environments
- python -m venv my_env
pythoncommand, we will run the
venvlibrary module to create the virtual environment that in this case we have called
venvsets up a new directory that contains a few items which we can view with the
- ls my_env
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 8/22/2016 2:20 PM Include
d----- 8/22/2016 2:20 PM Lib
d----- 8/22/2016 2:20 PM Scripts
-a---- 8/22/2016 2:20 PM 107 pyvenv.cfg
Together, these files work to make sure that your projects are isolated from the broader context of your local machine, so that system files and project files don’t mix. This is good practice for version control and to ensure that each of your projects has access to the particular packages that it needs.
To use this environment, you need to activate it, which you can do by typing the following command that calls the activate script in the
Your prompt will now be prefixed with the name of your environment, in this case it is called my_env:
This prefix lets us know that the environment my_env is currently active, meaning that when we create programs here they will use only this particular environment’s settings and packages.
Step 6 — Creating a Simple ProgramNow that we have our virtual environment set up, let’s create a simple “Hello, World!” program. This will make sure that our environment is working and gives us the opportunity to become more familiar with Python if we aren’t already.
To do this, we’ll open up nano and create a new file:
Once the text file opens up in Terminal we’ll type out our program:
- nano hello.py
Exit nano by typing the
xkeys, and when prompted to save the file press
Once you exit out of nano and return to your shell, let’s run the program:
The hello.py program that you just created should cause Terminal to produce the following output:
- python hello.py
To leave the environment, simply type the command
deactivateand you will return to your original directory.