17 Feb 2018 Arun Ponnusamy
Source: Google Images
First, make sure you don’t have any existing High Sierra installers already on your Mac, as Mojave’s software update will detect them and refuse to download the latest installer (even if the.
This is from a long time Ubuntu user who recently picked up a MacBook Air for all the portability it has to offer.
I am completely new to macOS. I had to look around and experiment to install all the packages I was enjoying on Ubuntu. I decided to put together a simple setup guide to get the deep learning environment (particularly for Computer Vision) up and running on macOS the easy way.
I am documenting the process I followed to get things working. Some of the process may not be the efficient / optimized way but the goal here is to get the job done with minimal efforts / frustration.
Target Audience
Someone coming from Ubuntu background, completely new to macOS, just want to set things up for deep learning and doesn’t want to feel “I wish I didn’t pick up a MacBook”.
. . .
Following are the basic softwares/packages you need for deep learning. This is not an exhaustive list by any means. These are the basic things I work with for Computer Vision. Depending on your area of interest the list may vary.
- python3
- virtualenv
- opencv
- dlib
- tensorflow
- keras
Before we start ..
On Ubuntu, we all know that we can just go to the terminal and sudo apt-get install . But what’s the play here on macOS?
It turns out that macOS is also a Unix based Operating System. So, luckily we have the same terminal we are all familiar with. But with some changes in the way we interact through commands.
For example, instead of apt-get package manager we have brew (HomeBrew) here.
I have seen people recommending to install Xcode (an IDE for developers from Apple) as the first thing to do. But I don’t think it’s absolutely necessary. I was running Python scripts fine without actually installing Xcode and also Xcode is a heavy piece of software to run.
So, the bottom line is you will be pretty much fine without Xcode.
Getting HomeBrew
/usr/bin/ruby -e “$(curl - fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)'
Open up Terminal and enter the above command. It will install brew and only the necessary xcode command line tools.
Python 3
brew install python3
This will install latest version of Python for you. You can check whether it’s correctly installed by typing python3 on the terminal.
brew install pip3
This will install the package manager for Python3. You can check whether it’s correctly linked to Python3 by typing
pip3 -V
This should tell the version of pip and the version of Python it’s linked to. (Should be 3.x not 2.x)
Virtual Environment
Virtual environment is a super useful tool to keep things clean and separate. All the Python packages you install will be virtually contained within a particular virtual environment you create and will not mess with the things outside. Trust me, this will save you a lot of frustration in future.
pip3 install virtualenv virtualenvwrapper
We need to update .bash_profile file before start enjoying the benefits of virtual environment. (There is no .bashrc in macOS)
If you can’t find .bash_profile file in your home directory, you can create one.
vim ~/.bash_profile
Add the following few lines and save the file.
# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
In Ubuntu, Python location used to be /usr/bin/python3
Now type
source ~/.bash_profile
on the terminal. Make sure it doesn’t throw any error.Now you are all set to create your first virtual environment.
Creating Virtual Environment
You can create as many virtual environments you want with any name you wish.
mkvirtualenv cv -p python3
The above line creates a virtual environment named
cv
Now you are inside the virtual environment
cv
. You can look for (cv) sign at the beginning of shell prompt.Inside the virtual environment cv
You can come out of the environment by typing
deactivate
and enter the environment by typing workon
.Some of the dependencies ..
Before we start pip installing Python packages, let’s take care of some of the dependencies these packages have.
Come out of the virtual environment by typing
deactivate
.brew install cmake
This installs cmake which is needed for dlib.
To display image outputs from opencv or dlib , we need to install X11. Download X11 from xquartz.org and install it by double clicking the downloaded file. Once it finishes installing you might want to logout and log back in.
So, that’s it. Let’s get pip installing.
OpenCV
Go into the virtual environment by typing
workon cv
Make sure the (cv) sign appears in the command line.
Let’s install some of the pre-requisite/other useful packages.
pip install numpy h5py pillow scikit-image
Install OpenCV for Python by typing
pip install opencv-python
Note: opencv-python is a community supported package, not officially from OpenCV. It may be a bit slow since we are not compiling from source on our system. But this is the easiest way to get going.
Dlib
pip install dlib
This might take a while. Please be patient till it completes the installation. (No, it’s not hung)
TensorFlow
pip install tensorflow
This installs the cpu version of tensorflow. Again, we are not compiling from source. So, it’s not optimized for our system. But we will be fine with this. (Ignore the messages it prints about how it can be optimized for your system while importing tensorflow on the code)
Keras
pip install keras
Keras is a very beginner-friendly deep learning library. It runs on top of tensorflow. You can build models very quickly using keras.
Test all the packages installed by importing them. Type
python
on Terminal. It should give you the python shell. Import the packages one by one and check their version. Make sure you don’t face any error. If so, installation was not complete.import cv2
print(cv2.__version__)
import packages and check their version
Summary
We installed the basic packages/software needed for deep learning (particularly for computer vision) on macOS High Sierra the easiest way possible without dealing with much frustration.
I hope this helps someone out there like me, getting started with macOS. Feel free to share your comments here or you can reach out to me on Twitter.
Peace.
This page tells you how to setup a Python programming environment for your Mac OS X computer and provides a step-by-step guide for creating and running a simple 'Hello, world' Python program. All of the software is freely available on the Web. These instructions are for MacOS X 10.13 (High Sierra), but the instructions for other recent versions of Mac OS X are similar.
Overview
The Python programming environment required by this booksite consists of:
- Python, that is, the Python compiler/interpreter.
- The Python standard libraries.
- IDLE, the Python Integrated DeveLopment Environment.
- The Tkinter, NumPy, and Pygame libraries, which are used by the booksite programs that do graphics or audio processing.
- The booksite library, that is, a set of modules that we developed specifically to support this booksite.
- The Terminal application that is bundled with Mac OS X.
Downloading and Installing Python, IDLE, Tkinter, NumPy, and Pygame
Note: The Mac Finder application uses the term folder to mean a container of documents and, perhaps, other folders. This document instead uses the equivalent Unix term directory. |
Python 2 is bundled with Mac OS X. However, Python 3 is not. We recommend that you download and install Python 3, and use Python 3 exclusively when running programs associated with this booksite.
Perform these steps to download and install Python, IDLE, Tkinter, NumPy, and PyGame:
- Browse to the Python for Mac download page.
- In the resulting page click on the Download Python 3.6.5 button. Your browser will download the file
python-3.6.5-macosx10.6.pkg
to yourDownloads
directory. - Using Mac Finder Manager, navigate to your
Downloads
directory, and double-click on thepython-3.6.5-macosx10.6.pkg
file to install Python, Tkinter, and IDLE. Use the default options. (It's OK to delete thepython-3.6.5-macosx10.6.pkg
file after the installation is complete.) - Open a Terminal window. To do that, click on the Spotlight Search icon on the right end of the menu bar. (It has the appearance of a magnifying glass.) In the resulting dialog box, type
Terminal.app
followed by the Enter key. - In the Terminal window issue these commands to install NumPy and PyGame:
To 'issue a command' you should type the command followed by the Enter key. |
Perform these steps to test your installation:
- In the Terminal window issue the
python3
command. You should see something like this: - If you see that output, then your installation of Python, IDLE, and Tkinter was successful.
- At the Python
>>>
prompt, typeimport numpy
followed by theEnter
key. If no error messages appear, then your installation of NumPy was successful. - At the Python
>>>
prompt, typeimport pygame
followed by theEnter
key. If no error messages appear, then your installation of PyGame was successful. - At the Python
>>>
prompt, typeexit()
followed by theEnter
key to exit Python. - In the Terminal window issue the command
idle3
. If an IDLE window appears, then you have installed IDLE properly. Close the IDLE window. - Close the Command Prompt window.
IMPORTANT: When running the Python programs associated with this booksite, do not issue the python command. Instead issue the python3 command. The former command runs the Python 2 compiler/interpreter that is bundled with Mac OS X; the latter command runs the Python 3 compiler/interpreter that you installed by following the instructons on this page. |
Downloading and Installing the Booksite Library
Perform these steps to download and install the booksite library:
- Use your Web browser to download this introcs-1.0.zip file to your
/Users/yourusername/Downloads
directory. - In the Finder, double click on
/Users/yourusername/Downloads/introcs-1.0.zip
to unzip the file, thus creating a directory named/Users/yourusername/Downloads/introcs-1.0
. (It's OK to delete the/Users/yourusername/Downloads/introcs-1.0.zip
file after you have unzipped it.) - Open a Terminal window.
- At any time the Terminal application has a working directory. Initially the working directory is
/Users/yourusername
. In the Terminal window issue thecd Downloads
command to change your working directory to/Users/yourusername/Downloads
, and then issue thecd introcs-1.0
command to change your working directory to/Users/yourusername/Downloads/introcs-1.0
. (Incidentally, thecd ..
command changes your working directory to the 'parent' of the current working directory.) - Issue the
ls
command to display the names of all files in your working directory. Make sure that a file namedsetup.py
is in your working directory. - Issue the
python3 setup.py install --user
command. The computer copies the files defining the booksite modules to a directory where Python can find them, and writes status messages to your Terminal window to indicate its progress.
Perform these steps to test your installation of the booksite library:
- In the Terminal window issue the
python3
command. - At the Python
>>>
prompt, type the statementimport stdio
followed by the Enter key. If Python generates no error messages, then you have installed the booksite library properly. - At the Python
>>>
prompt, typeexit()
followed by the Enter key to exit Python. - Close the Terminal window.
Configuring IDLE
So far you've downloaded and installed all of the software that you'll need. You should perform one more step before creating your first program: configure the IDLE programming environment. Follow these instructions:
- Open a Terminal window.
- In the Terminal window issue the command
idle3
to launch IDLE. - Click on the Python → Preferences... menu item.
- Click on the General tab.
- Click on the Open Edit Window radio button.
- Click on the Ok button.
- Close the IDLE window.
- Close the Terminal window.
Composing Your First Program
Having installed Python, the Python standard libraries, IDLE, Tkinter, NumPy, Pygame, and the booksite libraries, and having configured IDLE, you are ready to compose your first Python program. Perform these instructions:
- Using the Mac Finder, create a directory named
/Users/yourusername/hello
. - Open a Terminal window.
- Issue the
cd hello
command to make the/Users/yourusername/hello
directory your working directory. - Issue the command
idle3 &
to launch IDLE. Note the trailing ampersand. The trailing ampersand tells the computer to run theidle3
program in the background, thereby leaving your Terminal application free to handle additional commands while IDLE is running. - In IDLE, type the four-line Python program helloworld.py exactly as it appears below. Use the arrow keys, mouse, or touchpad to move within the text that you have typed. Use the Delete key to delete text. Be careful; the smallest typing mistake might cause the program to fail.
- When you are finished typing, in IDLE click on the File → Save... menu item to save the Python program. Save it in a file named
helloworld.py
in the directory/Users/yourusername/hello
. The file name is case sensitive, so make sure you use all lowercase letters.
Running Your First Program
The final step is to run your program. It is possible to run some Python programs from within IDLE, but you should run the programs associated with this booksite directly from a Terminal window. To do that, perform these steps:
- Within the same Terminal window, issue the
ls
command to display the names of all files in the working directory. Confirm that the working directory contains yourhelloworld.py
file. - Issue the
python3 helloworld.py
command to run your program. If the computer writes 'Hello, World' to the Terminal window, then the execution of yourhelloworld.py
program was successful. If the computer instead writes error messages, then use IDLE to correct your program, and issue thepython3 helloworld.py
command again. Repeat until your program runs successfully. If your program runs successfully the first time you try, then intentionally introduce an error into your program, just so you get some experience with correcting errors. - Close the IDLE window.
- Close the Terminal window.
You now have installed and configured a reasonable Python environment, and have used it to compose and run a Python program. Congratulations! You are a Python programmer!
Downloading the Booksite Example Programs (optional)
We recommend that you download the booksite example programs, that is, the example Python programs that are presented incrementally throughout the booksite. Having done so, you can run those programs to help you learn about them. Perform these instructions:
- Use your Web browser to download this introcs-python.zip file to your
/Users/yourusername/Downloads
directory. - In the Mac Finder, double-click on
/Users/yourusername/Downloads/introcs-python.zip
to unzip the file, thus creating the/Users/yourusername/Downloads/introcs-python
directory containing the booksite example programs. (It's OK to delete the/Users/yourusername/Downloads/introcs-python.zip
file after you have unzipped it.)
Then perform these steps to test your download of the booksite example programs:
- Open a Terminal window.
- Issue the
cd Downloads
andcd introcs-python
commands to make/Users/yourusername/Downloads/introcs-python
your working directory. - Issue the
ls
command. Confirm that the working directory contains a file namedbouncingball.py
. - Issue the
python3 bouncingball.py
command. If Python launches a stddraw window showing an animated bouncing ball, then your download of the booksite example programs was successful. - Close the stddraw window.
- Close the Terminal window.
Downloading the Booksite Example Data (optional)
We recommend that you download the booksite example data, that is, the data files used by the booksite example programs that are presented incrementally throughout the booksite. Perform these instructions:
- Use your Web browser to download this introcs-data.zip file to your
/Users/yourusername/Downloads
directory. - In the Finder, double-click on
/Users/yourusername/Downloads/introcs-data.zip
to unzip the file, thus creating the/Users/yourusername/Downloads/introcs-data
directory containing the booksite example data files. (It's OK to delete the/Users/yourusername/Downloads/introcs-data.zip
file after you have unzipped it.)
Downloading the Booksite Library: Part 2 (optional)
Previously on this page we described how to download and install the booksite library so Python can find it. Now we describe how to download the booksite library so you can find it — for the sake of studying the code that implements it, should you so desire. Perform these instructions:
- Use your Web browser to download this stdlib-python.zip file to your
/Users/yourusername/Downloads
directory. - In the Mac Finder, double-click on
/Users/yourusername/Downloads/stdlib-python.zip
to unzip the file, thus creating the/Users/yourusername/Downloads/stdlib-python
directory containing the booksite library. (It's OK to delete the/Users/yourusername/Downloads/stdlib-python.zip
file after you have unzipped it.)
We invite you to study the code that implements the booksite library. But don't be concerned if some of the code is cryptic. The code that implements the booksite library uses some features of Python that are beyond the scope of the textbook and this booksite.
Q & A
Q. Why do I get the error
ImportError: No module named stdio
when I issue the command python program_that_uses_stdio.py
?A. You must issue the command
python3 program_that_uses_stdio.py
, as described above.Q. I downloaded files using my browser, but can't find them. Where are they?
A. Many browsers by default place downloaded files in the directory
/Users/yourusername/Downloads
.Q. How do I break out of an infinite loop when running my program from the Terminal application?
A. Type Ctrl-c. That is, while pressing the Ctrl key, type the c key.
Q. Must I use IDLE to create my Python programs? Can I use some other text editor?
A. You need not use IDLE to create your Python programs; it is fine to use some other text editor. For example, it is reasonable to use the TextEdit editor that is bundled with Mac OS X. However if you do use some other text editor, then make sure you change its settings so it (1) uses a four-space indentation scheme, and (2) indents using spaces instead of tabs. The Wikipedia Comparison of text editors page provides summary descriptions of many text editors.