- Python 3 Basic Tutorial
- Python 3 Advanced Tutorial
- Python 3 Useful Resources
- Selected Reading
The official home of the Python Programming Language. While Javascript is not essential for this website, your interaction with the content will be limited. Python's default installation also comes with its own IDE called IDLE.IDLE initially stood for Integrated DeveLopment Environment, but this is sometimes extended to Integrated Development and Learning Environment. IDLE is intended to be a simple IDE, which is suitable for beginners learning Python. Pydev with Eclipse – Best Python IDE (Free Tier) Pydev is the Python IDE for masses for the simple. Pydev for Eclipse, as others have mentioned, is good. Netbeans has a beta Python plugin that is a little rough around the edges, but could turn into something really cool. Additionally there is a long list of programming centric text editors for the mac, that may or may not fit your needs. Textmate - costs money, people love this program, but I haven't used it enough to see what all the fuss.
Using Python environments in VS Code. An 'environment' in Python is the context in which a Python program runs. An environment consists of an interpreter and any number of installed packages. The Python extension for VS Code provides helpful integration features for working with different environments.
Python 3 is available for Windows, Mac OS and most of the flavors of Linux operating system. Even though Python 2 is available for many other OSs, Python 3 support either has not been made available for them or has been dropped.
Local Environment Setup
Open a terminal window and type 'python' to find out if it is already installed and which version is installed.
Getting Python
Windows platform
Binaries of latest version of Python 3 (Python 3.5.1) are available on this download page
The following different installation options are available.
- Windows x86-64 embeddable zip file
- Windows x86-64 executable installer
- Windows x86-64 web-based installer
- Windows x86 embeddable zip file
- Windows x86 executable installer
- Windows x86 web-based installer
Note − In order to install Python 3.5.1, minimum OS requirements are Windows 7 with SP1. For versions 3.0 to 3.4.x Windows XP is acceptable.
Linux platform
Different flavors of Linux use different package managers for installation of new packages.
On Ubuntu Linux, Python 3 is installed using the following command from the terminal.
Installation from source
Download Gzipped source tarball from Python's download URL − https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
Mac OS
Download Mac OS installers from this URL − https://www.python.org/downloads/mac-osx/
- Mac OS X 64-bit/32-bit installer − python-3.5.1-macosx10.6.pkg
- Mac OS X 32-bit i386/PPC installer − python-3.5.1-macosx10.5.pkg
Double click this package file and follow the wizard instructions to install.
The most up-to-date and current source code, binaries, documentation, news, etc., is available on the official website of Python −
Python Official Website − https://www.python.org/
You can download Python documentation from the following site. The documentation is available in HTML, PDF and PostScript formats.
Python Documentation Website − www.python.org/doc/
Setting up PATH
Programs and other executable files can be in many directories. Hence, the operating systems provide a search path that lists the directories that it searches for executables.
The important features are −
The path is stored in an environment variable, which is a named string maintained by the operating system. This variable contains information available to the command shell and other programs.
The path variable is named as PATH in Unix or Path in Windows (Unix is case-sensitive; Windows is not).
In Mac OS, the installer handles the path details. To invoke the Python interpreter from any particular directory, you must add the Python directory to your path.
Setting Path at Unix/Linux
To add the Python directory to the path for a particular session in Unix −
In the csh shell − type setenv PATH '$PATH:/usr/local/bin/python3' and press Enter.
In the bash shell (Linux) − type export PYTHONPATH=/usr/local/bin/python3.4 and press Enter.
In the sh or ksh shell − type PATH = '$PATH:/usr/local/bin/python3' and press Enter.
Note − /usr/local/bin/python3 is the path of the Python directory.
Setting Path at Windows
To add the Python directory to the path for a particular session in Windows −
At the command prompt − type path %path%;C:Python and press Enter.
Note − C:Python is the path of the Python directory
Python Environment Variables
Here are important environment variables, which are recognized by Python −
Sr.No. | Variable & Description |
---|---|
1 | PYTHONPATH It has a role similar to PATH. This variable tells the Python interpreter where to locate the module files imported into a program. It should include the Python source library directory and the directories containing Python source code. PYTHONPATH is sometimes preset by the Python installer. |
2 | PYTHONSTARTUP It contains the path of an initialization file containing Python source code. It is executed every time you start the interpreter. It is named as .pythonrc.py in Unix and it contains commands that load utilities or modify PYTHONPATH. |
3 | PYTHONCASEOK It is used in Windows to instruct Python to find the first case-insensitive match in an import statement. Set this variable to any value to activate it. |
4 | PYTHONHOME It is an alternative module search path. It is usually embedded in the PYTHONSTARTUP or PYTHONPATH directories to make switching module libraries easy. |
Running Python
There are three different ways to start Python −
Interactive Interpreter
You can start Python from Unix, DOS, or any other system that provides you a command-line interpreter or shell window.
Enter python the command line.
Start coding right away in the interactive interpreter.
Here is the list of all the available command line options −
Sr.No. | Option & Description |
---|---|
1 | -d provide debug output |
2 | -O generate optimized bytecode (resulting in .pyo files) |
3 | -S do not run import site to look for Python paths on startup |
4 | -v verbose output (detailed trace on import statements) |
5 | -X disable class-based built-in exceptions (just use strings); obsolete starting with version 1.6 |
6 | -c cmd run Python script sent in as cmd string |
7 | file run Python script from given file |
Script from the Command-line
A Python script can be executed at the command line by invoking the interpreter on your application, as shown in the following example.
Note − Be sure the file permission mode allows execution.
Integrated Development Environment
You can run Python from a Graphical User Interface (GUI) environment as well, if you have a GUI application on your system that supports Python.
Unix − IDLE is the very first Unix IDE for Python.
Windows − PythonWin is the first Windows interface for Python and is an IDE with a GUI.
Macintosh − The Macintosh version of Python along with the IDLE IDE is available from the main website, downloadable as either MacBinary or BinHex'd files.
If you are not able to set up the environment properly, then you can take the help of your system admin. Make sure the Python environment is properly set up and working perfectly fine.
Note − All the examples given in subsequent chapters are executed with Python 3.4.1 version available on Windows 7 and Ubuntu Linux.
We have already set up Python Programming environment online, so that you can execute all the available examples online while you are learning theory. Feel free to modify any example and execute it online.
An 'environment' in Python is the context in which a Python program runs. An environment consists of an interpreter and any number of installed packages. The Python extension for VS Code provides helpful integration features for working with different environments.
Note: If you're looking to get started with Python in Visual Studio Code, refer to the tutorial Getting Started with Python in VS Code.
Select and activate an environment
By default, the Python extension looks for and uses the first Python interpreter it finds in the system path. If it doesn't find an interpreter, it issues a warning. On macOS, the extension also issues a warning if you're using the OS-installed Python interpreter, because you typically want to use an interpreter you install directly. In either case, you can disable these warnings by setting python.disableInstallationCheck
to true
in your user settings.
To select a specific environment, use the Python: Select Interpreter command from the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)).
You can switch environments at any time; switching environments helps you test different parts of your project with different interpreters or library versions as needed.
The Python: Select Interpreter command displays a list of available global environments, conda environments, and virtual environments. (See the Where the extension looks for environments section for details, including the distinctions between these types of environments.) The following image, for example, shows several Anaconda and CPython installations along with a conda environment and a virtual environment (env
) that's located within the workspace folder:
Note: On Windows, it can take a little time for VS Code to detect available conda environments. During that process, you may see '(cached)' before the path to an environment. The label indicates that VS Code is presently working with cached information for that environment.
Selecting an interpreter from the list adds an entry for python.pythonPath
with the path to the interpreter inside your Workspace Settings. Because the path is part of the workspace settings, the same environment should already be selected whenever you open that workspace. If you'd like to set up a default interpreter for your applications, you can instead add an entry for python.pythonPath
manually inside your User Settings. To do so, open the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) and enter Preferences: Open User Settings. Then set python.pythonPath
, which is in the Python extension section of User Settings, with the appropriate interpreter.
The Python extension uses the selected environment for running Python code (using the Python: Run Python File in Terminal command), providing language services (auto-complete, syntax checking, linting, formatting, etc.) when you have a .py
file open in the editor, and opening a terminal with the Terminal: Create New Integrated Terminal command. In the latter case, VS Code automatically activated the selected environment.
Tip: To prevent automatic activation of a selected environment, add 'python.terminal.activateEnvironment': false
to your settings.json
file (it can be placed anywhere as a sibling to the existing settings).
Note: By default, VS Code uses the interpreter identified by python:pythonPath
setting when debugging code. You can override this behavior by specifying a different path in the pythonPath
property of a debug configuration. See Choose a debugging environment.
The Status Bar always shows the current interpreter.
The Status Bar also reflects when no interpreter is selected.
In either case, clicking this area of the Status Bar is a convenient shortcut for the Python: Select Interpreter command.
Tip: If you have any problems with VS Code recognizing a virtual environment, please file an issue in the documentation repository so we can help determine the cause.
Environments and Terminal windows
After using Python: Select Interpreter, that interpreter is applied when right-clicking a file and selecting Python: Run Python File in Terminal. The environment is also activated automatically when you use the Terminal: Create New Integrated Terminal command unless you change the python.terminal.activateEnvironment
setting to false
.
However, launching VS Code from a shell in which a certain Python environment is activated does not automatically activate that environment in the default Integrated Terminal. Use the Terminal: Create New Integrated Terminal command after VS Code is running.
Note: conda environments cannot be automatically activated in the integrated terminal if PowerShell is set as the integrated shell. See Integrated terminal - Configuration for how to change the shell.
Any changes you make to an activated environment within the terminal are persistent. For example, using conda install <package>
from the terminal with a conda environment activated installs the package into that environment permanently. Similarly, using pip install
in a terminal with a virtual environment activated adds the package to that environment.
Changing interpreters with the Python: Select Interpreter command doesn't affect terminal panels that are already open. You can thus activate separate environments in a split terminal: select the first interpreter, create a terminal for it, select a different interpreter, then use the split button (⌘ (Windows, Linux Ctrl+Shift+5)) in the terminal title bar.
Choose a debugging environment
By default, the python.pythonPath
setting specifies the Python interpreter to use for debugging. However, if you have a pythonPath
property in the debug configuration of launch.json
, that interpreter is used instead. To be more specific, VS Code applies the following order of precedence when determining which interpreter to use for debugging:
pythonPath
property of the selected debug configuration inlaunch.json
python.pythonPath
setting in the workspacesettings.json
python.pythonPath
setting in the usersettings.json
For more details on debug configuration, see Debugging configurations.
Where the extension looks for environments
The extension automatically looks for interpreters in the following locations:
- Standard install paths such as
/usr/local/bin
,/usr/sbin
,/sbin
,c:python27
,c:python36
, etc. - Virtual environments located directly under the workspace (project) folder.
- Virtual environments located in the folder identified by the
python.venvPath
setting (see General settings), which can contain multiple virtual environments. The extension looks for virtual environments in the first-level subfolders ofvenvPath
. - Virtual environments located in a
~/.virtualenvs
folder for virtualenvwrapper. - Interpreters installed by pyenv.
- Virtual environments located in the path identified by
WORKON_HOME
(as used by virtualenvwrapper). - Conda environments that contain a Python interpreter. VS Code does not show conda environments that don't contain an interpreter.
- Interpreters installed in a
.direnv
folder for direnv under the workspace (project) folder.
You can also manually specify an interpreter if Visual Studio Code does not locate it automatically.
Note: Once the 'select interpreter' flow is triggered, pipenv environments for the workspace folder will be searched for. If one is found, then no other interpreters are searched for or listed as pipenv expects to manage all aspects.
The extension also loads an environment variable definitions file identified by the python.envFile
setting. The default value of this setting is ${workspaceFolder}/.env
.
Global, virtual, and conda environments
By default, any Python interpreter that you've installed run in its own global environment, which is not specific to any one project. For example, if you just run python
(Windows) or python3
(macOS/Linux) at a new command prompt, you're running in that interpreter's global environment. Accordingly, any packages that you install or uninstall affect the global environment and all programs that you run within that context.
Note: The Python Extension version 2018.8.1 and later automatically updates environments.
Although working in the global environment is an easy way to get started, that environment will, over time, become cluttered with many different packages that you've installed for different projects. Such clutter makes it difficult to thoroughly test an application against a specific set of packages with known versions, which is exactly the kind of environment you'd set up on a build server or web server.
For this reason, developers often create a virtual environment for a project. A virtual environment is a subfolder in a project that contains a copy of a specific interpreter. When you activate the virtual environment, any packages you install are installed only in that environment's subfolder. When you then run a Python program within that environment, you know that it's running against only those specific packages.
Note: While it's possible to open a virtual environment folder as a workspace, doing so is not recommended and might cause issues with using the Python extension.
Tip: A conda environment is a virtual environment that's created and managed using the conda
package manager. See Conda environments for more details.
To create a virtual environment, use the following command, where '.venv' is the name of the environment folder:
When you create a new virtual environment, a prompt will be displayed to allow you to select it for the workspace.
This will add the path to the Python interpreter from the new virtual environment to your workspace settings. That environment will then be used when installing packages and running code through the Python extension. For examples of using virtual environment in projects, see the Django tutorial and the Flask tutorial.
If the activate command generates the message 'Activate.ps1 is not digitally signed. You cannot run this script on the current system.', then you need to temporarily change the PowerShell execution policy to allow scripts to run (see About Execution Policies in the PowerShell documentation):
Note: If you're using a version of the Python extension prior to 2018.10, and you create a virtual environment in a VS Code terminal, you must run the Reload Window command from the Command Palette and then use Python: Select Interpreter to activate the environment. If you have any problems with VS Code recognizing a virtual environment, please file an issue in the documentation repository so we can help determine the cause.
Tip: When you're ready to deploy the application to other computers, you can create a requirements.txt
file with the command pip freeze > requirements.txt
(pip3
on macOS/Linux). The requirements file describes the packages you've installed in your virtual environment. With only this file, you or other developers can restore those packages using pip install -r requirements.txt
(or, again, pip3
on macOS/Linux). By using a requirements file, you need not commit the virtual environment itself to source control.
Conda environments
A conda environment is a Python environment that's managed using the conda
package manager (see Getting started with conda (conda.io)). Conda works well to create environments with interrelated dependencies as well as binary packages. Unlike virtual environments, which are scoped to a project, conda environments are available globally on any given computer. This availability makes it easy to configure several distinct conda environments and then choose the appropriate one for any given project.
As noted earlier, the Python extension automatically detects existing conda environments provided that the environment contains a Python interpreter. For example, the following command creates a conda environment with the Python 3.4 interpreter and several libraries, which VS Code then shows in the list of available interpreters:
In contrast, if you fail to specify an interpreter, as with conda create --name env-00
, the environment won't appear in the list.
For more information on the conda command line, see Conda environments (conda.io).
Additional notes:
If you create a new conda environment while VS Code is running, use the Reload Window command to refresh the environment list shown with Python: Select Interpreter; otherwise you may not see the environment there. It might take a short time to appear; if you don't see it at first, wait 15 seconds then try using the command again.
To ensure the environment is set up well from a shell perspective, one option is to use an Anaconda prompt with the activated environment to launch VS Code using the
code .
command. At that point you just need to select the interpreter using the Command Palette or by clicking on the status bar.Although the Python extension for VS Code doesn't currently have direct integration with conda environment.yml files, VS Code itself is a great YAML editor.
Conda environments can't be automatically activated in the VS Code Integrated Terminal if the default shell is set to PowerShell. To change the shell, see Integrated terminal - Configuration.
You can manually specify the path to the conda executable to use for activation (version 4.4+). To do so, open the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) and enter Preferences: Open User Settings. Then set
python.condaPath
, which is in the Python extension section of User Settings, with the appropriate path.
Manually specify an interpreter
If VS Code does not automatically locate an interpreter you want to use, you can set the path to it manually in your Workspace Settings settings.json
file. With any of the entries that follow, you can just add the line as a sibling to other existing settings.)
First, select the File (Code on macOS) > Preferences > Settings menu command (⌘, (Windows, Linux Ctrl+,)) to open your Settings, select Workspace.
Then do any of the following steps:
Create or modify an entry for
python.pythonPath
with the full path to the Python executable (if you editsettings.json
directly, add the line below as the setting):For example:
Windows:
macOS/Linux:
You can also use
python.pythonPath
to point to a virtual environment, for example:Windows:
macOS/Linux:
You can use an environment variable in the path setting using the syntax
${env:VARIABLE}
. For example, if you've created a variable namedPYTHON_INSTALL_LOC
with a path to an interpreter, you can then use the following setting value:Note: Variable substitution is only supported in VS Code settings files, it will not work in
.env
environment files.By using an environment variable, you can easily transfer a project between operating systems where the paths are different, just be sure to set the environment variable on the operating system first.
Environment variable definitions file
An environment variable definitions file is a simple text file containing key-value pairs in the form of environment_variable=value
, with #
used for comments. Multiline values are not supported, but values can refer to any other environment variable that's already defined in the system or earlier in the file. For more information, see Variable substitution.
By default, the Python extension looks for and loads a file named .env
in the current workspace folder, then applies those definitions. The file is identified by the default entry 'python.envFile': '${workspaceFolder}/.env'
in your user settings (see General settings). You can change the python.envFile
setting at any time to use a different definitions file.
A debug configuration also contains an envFile
property that also defaults to the .env
file in the current workspace (see Debugging - Set configuration options). This property allows you to easily set variables for debugging purposes that replace variables specified in the default .env
file.
For example, when developing a web application, you might want to easily switch between development and production servers. Instead of coding the different URLs and other settings into your application directly, you could use separate definitions files for each. For example:
dev.env file
prod.env file
You can then set the python.envFile
setting to ${workspaceFolder}/prod.env
, then set the envFile
property in the debug configuration to ${workspaceFolder}/dev.env
.
Note: When environment variables are specified using multiple methods, be aware that there is an order of precedence. Environment variables contained in the .env
file specified by the python.envFile
setting (user or workspace) will override variables defined in the envFile
specified in launch.json
, as well as any env
variables defined in the launch.json
file itself. Similarly, environment variables defined in the envFile
specified in launch.json
will override env
variables defined in the launch.json
file.
Variable substitution
Mac Install Python3 Dev
When defining an environment variable in a definitions file, you can use the value of any existing environment variable with the following general syntax:
where ...
means any other text as used in the value. The curly braces are required.
Within this syntax, the following rules apply:
- Variables are processed in the order they appear in the
.env
file, so you can use any variable that's defined earlier in the file. - Single or double quotes don't affect substituted value and are included in the defined value. For example, if the value of
VAR1
isabcedfg
, thenVAR2='${env:VAR1}'
assigns the value'abcedfg'
toVAR2
. - The
$
character can be escaped with a backslash, as in$
. - You can use recursive substitution, such as
PYTHONPATH=${env:PROJ_DIR}:${env:PYTHONPATH}
(wherePROJ_DIR
is any other environment variable). - You can use only simple substitution; nesting such as
${_${env:VAR1}_EX}
is not supported. - Entries with unsupported syntax are left as-is.
Use of the PYTHONPATH variable
Python Mac Path
The PYTHONPATH environment variable specifies additional locations where the Python interpreter should look for modules. In VS Code, PYTHONPATH can be set through the terminal settings (terminal.integrated.env.*) and/or within an .env
file.
When the terminal settings are used, PYTHONPATH affects any tools that are run within the terminal by a user, as well as any action the extension performs for a user that is routed through the terminal such as debugging. However, in this case when the extension is performing an action that isn't routed through the terminal, such as the use of a linter or formatter, then this setting will not have an effect on module look-up.
When PYTHONPATH is set using an .env
file, it will affect anything the extension does on your behalf and actions performed by the debugger, but it will not affect tools run in the terminal.
If needed, you can set PYTHONPATH using both methods.
An example of when to use PYTHONPATH would be if you have source code in a src
folder and tests in a tests
folder. When running tests, however, those tests can't normally access modules in src
unless you hard-code relative paths. To solve this problem, add the path to src
to PYTHONPATH.
The value of PYTHONPATH can contain multiple locations separated by os.pathsep
: a semicolon (;
) on Windows and a colon (:
) on Linux/macOS. Invalid paths are ignored. If you find that your value for PYTHONPATH isn't working as expected, make sure that you're using the correct separator between locations for the operating system. For example, using a colon to separate locations on Windows, or using a semicolon to separate locations on Linux/macOS results in an invalid value for PYTHONPATH, which is ignored.
Note: PYTHONPATH does not specify a path to a Python interpreter itself, and should not be used with the python.pythonPath
setting. For additional information about PYTHONPATH, read the PYTHONPATH documentation.
Change Default Python On Mac
Next steps
Python Development Environment Mac
- Editing code - Learn about autocomplete, IntelliSense, formatting, and refactoring for Python.
- Debugging - Learn to debug Python both locally and remotely.
- Testing - Configure test environments and discover, run, and debug tests.
- Settings reference - Explore the full range of Python-related settings in VS Code.