.. _python_for_windows: ############################# Setting up Windows for Python ############################# Getting The Tools ================== Python ------- There are a number of Python distributions available -- many designed for easier support of scientific programming: - Anaconda - Enthought Canopy - Python(x,y) - etc.... But for basic use, the installer from python.org is the way to go, and that is what we will be using in this program. https://www.python.org/downloads/ You want the installer for Python 3.7 -- probably 64 bit, though if you have a 32 bit system, you can get that. There is essentially no difference for the purposes of this course. Double click and install. Ensure that the Install launcher for all users (recommended) and the Add Python 3.7 to PATH checkboxes at the bottom are checked. **Add Python 3.7 to PATH step is important!** If this is not checked then when you try to run your python code it won't be able to find the executable. See: `Installing Python on Windows `_ .. _git_bash: Terminal --------- If you are confident in your use of the "DOS Box" or "powershell", command lines, feel free to use one of those. However, your life may be easier if you install "Git Bash", as then you can follow unix-style terminal instructions exactly, and do not have to translate. Also, your instructors are more experienced with Bash. From now on, if you hear the terms "bash", "shell" or "terminal", or "command line" know that this is the application that is being referred to. We will use those terms interchangeably to mean ANY command line. When you install Git Bash, you are installing git (and a git gui) as well, thus killing two birds with one stone! https://git-for-windows.github.io/ Select the download button on the page and launch downloaded executable, then follow the prompts. On "Choosing default editor used by Git" step it is best to select Notepad++ (which you need to have installed first) unless you are comfortable with non-graphical editors like vim. You can go through the rest of the prompts using default values. Once you are done, a terminal window should pop up - try out some commands like ``ls`` or ``git help``. You can use this git with the DOS box or Powershell as well. This is also a good bet for running Python -- If you use the Git Bash shell, you can use the same commands as Linux and OS-X users. Regardless of which shell you choose, you will need to add Python to your environment. It is possible that this was done during the installation of Python. If you type 'which python' into your terminal, and get back the answer '/c/python37/python', then you are good to go, otherwise (which shouldn't happen if you checked the "Add Python 3.7 to PATH" checkbox when you installed Python above), follow the instructions here: http://www.computerhope.com/issues/ch000549.htm You will want to add: ``C:\Users\YourUserName\AppData\Local\Programs\Python\Python37`` and ``C:\Users\YourUserName\AppData\Local\Programs\Python\Python37\Scripts`` to ``PATH`` Here are steps for updating path: :: cd touch .bash_profile You can edit this file using Notepad, locate this file in File Explorer in This PC > Local Disk > Users > YourUsername Add to the file (file should be empty): :: PATH=$PATH:/C/Users/YourUserName/AppData/Local/Programs/Python/Python37:/C/Users/YourUserName/AppData/Local/Programs/Python/Scripts Note: your python executable may be located in a different path, to check the path you need to start windows shell (``cmd``) and type ``where python`` - this command will output where python is currently installed. Save the file and start a new gitbash shell. Once you have done that, you should be able to type ``python`` at the command prompt, and get something like: :: Python 3.7.0 (v3.6.2:5fd33b5926, Jul 16 2017, 20:11:06) [GCC 4.2.1 (Windows build 7584) (dot 3)] on win64 Type "help", "copyright", "credits" or "license" for more information. >>> This is the Python interpreter. Type ``ctrl+Z`` to get out (or ``exit()``) Note: if you have trouble running ``python`` command in your gitbash (it hangs), try running this instead: ``winpty python``. To avoid having to type ``winpty python`` all the time, it's strongly recommended that you create an alias like below: :: $ echo "alias python='winpty python'" >> ~/.bash_profile You will need to close the current bash window and restart a new one to get this alias. Then from now on, you can just type ``python`` and it should work on git bash (no more hanging) as well. git --- If you installed Git Bash, you will already have git, both usable in the terminal and as a gui, and can safely skip this section. If not, you still need a git client. You can use the above link and install git (it will install the bash shell as well, of course, but you can use your shell of choice instead). There is also TortoiseGit: https://code.google.com/p/tortoisegit/ Which integrates git with the file manager. Feel free to use this if you already have an understanding of how git works, but for the purposes of learning, it may be better to use a command line client (git Bash above). pip --- ``pip`` is the Python package installer. It is updated faster than Python itself, so once you have Python you want to get the latest version of pip working:: $ python -m ensurepip --upgrade It should download and install the latest ``pip``. You can now use pip to install other packages. The first thing you may want to do is update pip itself: .. code-block:: bash $ python -m pip install --upgrade pip Using pip: ---------- To use pip to install a package, you invoke it with this command:: python -m pip install the_name_of_the_package Where ``python`` is the command you use to invoke the Python you want to use . **NOTE:** You will frequently see advice to use pip like so:: $ pip install something_or_other Which often works, but also can invoke the *wrong* version of pip. The above command:: $ python -m pip install something_or_other calls Python, and tells it to run the ``pip`` module. It is exactly the same as calling pip directly, except that you are assured that you are getting the version of pip connected the version of Python that you are running. iPython -------- One extra package we are going to use from the beginning in the program is ``iPython``:: $ python -m pip install ipython (It will install a LOT) You should now be able to run ``iPython`` from the git bash shell or "DOS Box" or PowerShell:: $ ipython Python 3.7.0 (v3.6.2:5fd33b5926, Jul 16 2017, 20:11:06) Type 'copyright', 'credits' or 'license' for more information IPython 6.1.0 -- An enhanced Interactive Python. Type '?' for help. (or from the DOS box or PowerShell prompt) We will use this in class as our default Python interpreter. Testing it out -------------- To be ready for the program, you need to have: - python - pip - iPython - git All available from the command line. To try it out, you should be able to run all of these commands, and get something like the following results: (recall that you can get out of the python or iPython command lines with ``ctrl+Z`` (if that doesn't work, try ``ctrl+D`` -- the \*nix version)) For Python: :: hosun@DESKTOP-GJT06Q0 MINGW64 ~ $ python Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> ^Z For iPython: :: hosun@DESKTOP-GJT06Q0 MINGW64 ~ $ ipython Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] Type 'copyright', 'credits' or 'license' for more information IPython 6.5.0 -- An enhanced Interactive Python. Type '?' for help. In [1]: Do you really want to exit ([y]/n)? y For pip: :: hosun@DESKTOP-GJT06Q0 MINGW64 ~ $ python -m pip --version pip 18.0 from C:\Python37\lib\site-packages\pip (python 3.7) For git: :: hosun@DESKTOP-GJT06Q0 MINGW64 ~ $ git --version git version 2.18.3.windows.1