Related:

INSTALL PY3

win

Install py2 first! Install py3 later.
Download and install py3 from the official website.
During installation, make sure to "add to system PATH".
If it is only in user's "Path", we need to also add to system "PATH" (both the python root folder and the script subfolder), and make sure it is before py2's folders.

ubuntu

Ubuntu 16.04 has both py2 & py3; default py2.

INSTALL PIP IN UBUNTU 16

sudo apt-get update && sudo apt-get -y upgrade && \
sudo apt-get install python-pip python3-pip && \
pip -V; pip3 -V

FREQUENT PIP CMD

pip install package_name
pip uninstall package_name
pip search package_name
pip freeze
pip --help

JUPYTER

see: jupyter

VIRTUAL ENV

There are 2 tools (virtualenv and virtualenvwrapper) can be used. There is also one blog introducing bash alias way to use virtualenv: ref ( evernote backup ).
We will use the wrapper one (cuz we prefer new stuff, right?).
If we need to put the env into a folder other than the user's home, we can use the old virtualenv package:
virtualenv [-p /usr/bin/python2.6] <path/to/new/virtualenv/>

install

Win: pip install virtualenvwrapper-win
Nix: pip install virtualenvwrapper (this also works for windows with cygwin)

make new env

mkvirtualenv <env name>
If we want to use another python intepretor, we can use the optional -p (path) parameter:
mkvirtualenv -p D:\Python27\python.exe py27_rest_demo
TIP: After running this command, we will automatically enter the virtual environment.
The name is showing at the beginning of terminal/cmd prompt, surrended by ( ):

OBS: newly created env does NOT have globally installed packages.

using previously created env

workon <env name>

packages

When we are in an env, we can use pip to install packages for this env.

quit current env

deactivate

test package version

Take Django as an example:

python
import django
print(django.get_version())

cmd format

Even with -p parameter, we need to run the .py files with virtual env's python.exe, e.g.:
C:\Users\<user name>\Envs\py27_rest_demo\Scripts\python.exe manage.py runserver
Otherwise, system's global intepretor will take effect.
Easier Way
We can use D:\Python27>mklink python27.exe python.exe to make it possible to run server by: python27.exe manage.py runserver. However, direct copying python.exe and renaming the file does NOT work.

PERFORMANCE

Simple seconds: time()

import time
start_time = time.time()
# do something here
end_time = time.time()
print(end_time - start_time, 'seconds.')

Alternatives: perf_counter or process_time
ref stackoverflow.

MORE

不可不知的Python陷阱