Search
  • Mark Freeman

🐍 💻 Setting Up a Python Environment on Mac for Data Science


This tutorial will guide you on setting up a Python environment on your Mac for data science! My goal is to teach you the following skills to get you started on your data science journey:

  • Preparing your Mac

  • Basic use of the command line

  • Downloading Python

  • Preparing and IDE and connecting it to Python

  • Basic use of GitHub via the command line

  • Using .zshrc files

  • Bonus: Customizing your terminal and other useful settings

🚀 TL;DR

If you are already familiar with setting up Python on Mac or want to jump straight in:

  • Make sure the terminal uses zsh (Mac default)

  • Install Oh My Zsh

  • Install Brew

  • Install Miniconda

  • conda install -c conda-forge jupyterlab

  • Download preferred IDE

  • Connect your respective IDE interpreter to Miniconda Python

📚 Tutorial


Set Up Terminal

1. Create a folder within your home folder called repo.


2. Ensure that your Mac uses zsh for your terminal (this should be the default since macOS 10.15).

3. Install iTerm2, a “terminal emulator” that will replace your terminal and add great functionality options.


4. Install Xcode, though not required for running Python, some packages need it, and it’s a pain to download in the middle of your work.


5. Install Oh My Zsh, an open-source framework that allows you to manage and configure zsh through a .zshrc file (i.e., zsh on ✨steroids✨). Every time you open your terminal, your .zshrc file will run to set up your configurations automatically.

After installing Oh My Zsh, your user home directory should have the following hidden files:

6. Install Brew, which allows you to download other packages outside of the Python ecosystem, by executing the following line of code in your terminal:

> /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Below is what my terminal looked like after running the above command.


Install Python

7. Install Miniconda (MacOSX 64-bit pkg version), which will include “only conda, Python, the packages they depend on, and a small number of other useful packages, including pip, zlib, and a few others.” Miniconda is a tool to manage your Python environments and their respective packages.

  • There are alternatives to Miniconda, such as full Anaconda or downloading Python and managing your environment via venv or pyenv.

  • I believe Miniconda strikes a balance between being beginner-friendly while not bloated with the extra software and packages found in full Anaconda.

  • If you have a preferred format, please use that instead and account for it in the rest of this tutorial.

Ensure that you download Miniconda into your repos directory!

8. Use the following commands in the terminal to activate your conda environment, save its path to your .zshrc file, and check if it activated properly:

> source ~/repos/miniconda3/bin/activate
> conda init zsh
> conda list

9. Check your .zshrc file to ensure that the conda path was added correctly. You can find .zshrc in your home directory by revealing your hidden files by typing “command” + “shift” + “.” simultaneously.

10. Restart your terminal to ensure your changes occur in your .zshrc file.


11. Add some data science packages to get you started:

> conda install numpy
> conda install pandas
> conda install scipy
> conda install matplotlib
> conda install seaborn
> conda install -c conda-forge scikit-learn

Note: Since we are using Miniconda, we use conda instead of pip for most installations. I highly encourage you to read this blog post to understand the difference.


12. Install Jupyter Lab, which will allow you to create jupyter notebooks (i.e., .ipynb), which is great for experimenting and learning data science.

> conda install -c conda-forge jupyterlab

Run jupyter lab in terminal to see it in action!


Install Your IDE

13. Install VSCode, an IDE to help you code in most languages (including Python). You are more than welcome to use your preferred IDE, but note that this tutorial assumes VSCode moving forward.


14. Install the Python extension within VSCode.


15. Connect VSCode to your Miniconda python environment by going into your command pallet (i.e., typing “command” + “p” simultaneously) and type “>python: select interpreter” then select “~/repos/miniconda3/bin/python”.

16. Check to make sure Miniconda connects with VSCode by doing the following:

  • Open new python file

  • Run print(‘Hello World’)

  • Accept and download any VSCode recommended packages to connect to conda


Set Up Git and GitHub

17. Install Git, a version control tool you can use with websites like GitHub via conda.

> conda install git

18. Go to GitHub (create an account if you don’t have one already), and create a new repository called setup-python-env.

  • Description: “Python environment setup and customizations.”

  • Set to private

  • Add README.md file that auto-populates

19. In your local repos folder, create another folder called github and clone your setup-python-env repository (GitHub documentation) to the github folder with the following commands in terminal:

> cd ~/repos/github
> git clone https://github.com/<your_username>/setup-python-env.git


Optional: Customize Environment Appearance

Though not needed, these steps will either add valuable tools to help you write clear Python code or add cosmetic touches to make it fun to use the terminal!


20. Enable linting and auto-formatting tools to VSCode.

  • Install mypy and black via conda

  • VSCode > command pallet > ‘> python:select linter’ > select mypy

  • VSCode > preferences > settings - format on save (check) - python formatting provider (drop down menu: black)

  • settings > search “edit in json” > JSON > edit in settings.json - Add to JSON : “editor.rulers”: [80]

> conda install mypy
> conda install black

Your VSCode settings.json should look like the following in this repository under reference-setting-files:

21. Customizing zsh and iTerm2

  • Install powerlevel10k for zsh by cloning its GitHub repository and saving it in your .zshrc file

  • Once installed, restart your terminal, and powerlevel10k will automatically start a configuration wizard.

  • Follow all the powerlevel10k prompts in the terminal, and it will save all of your configurations in .zshrc

> git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
> echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc

After the powerlevel10k setup, your terminal should look similar to this:

Your .zshrc should be updated as well and look like this:

22. Install zsh syntax highlighting to save you from entering the wrong commands.

  • Clone the zsh-syntax-highlighting GitHub repository into your repos directory.

  • Add zsh-syntax-highlighting information to your .zshrc file

  • Note that zsh-syntax-highlighting information needs to be at the end of your .zshrc file

> cd ~/repos
> git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
> echo "source ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc

23. Customize iTerm2 (my favorite part); if you are new to using the command line, I found this helped me get over the learning curve as I wanted to use it more!

  • Create a new iTerm2 profile

  • iTerm2 > preferences > profiles > text

  • Create a new profile name “setup-python-env” and set it to default via other actions

  • Update iTerm2 font

  • iTerm2 > preferences > profiles >

  • Go to Text and change Font to MesloLGS NF

  • Check “Use built-in Powerline glyphs”

  • Change your terminal’s background image

  • Go find a cool image you like; for this tutorial, I’m choosing a copyright-free image (but my go-to is the Akira movie poster)

  • iTerm2 > preferences > profiles > window

  • Select background image and set to enable and scale to fill

  • Lower blending to a level where the image is not distracting

  • Change text colors

  • iTerm2 > preferences > profiles > colors

  • Change the colors to your liking and play around with your preferences

  • Pro tip: use this image to hex code tool to get colors to match your background image

  • For more fine-tune detail, such as the > color, go to the .p10k.zsh hidden file in your home directory for further customization

  • Documentation for powerlevel10k customization

  • I recommend the following areas to start:

typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
typeset -g POWERLEVEL9K_PROMPT_CHAR_OK
typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR

Here is the copyright-free image I used:

Here is what the terminal looks like afterward:


Saving Your Preferences to GitHub

24. Create a new git branch to save your environment setup.

> cd ~/repos/github/setup-python-env
> git checkout -b ‘save_preferences’

25. Copy and paste the following files into setup-python-env:

  • powerlevel10k .p10k.zsh (home directory)

  • VSCode settings.json (~/Library/Application Support/Code/User/settings.json)

  • Oh My Zsh .zshrc (home directory)

26. Save iTerm2 profile as JSON into setup-python-env.

  • iTerm2 > preferences > profiles > other actions > save profile as JSON

27. Add and commit file changes to local git branch and push to remote on Github.

> git status
> git add .
> git commit -m ‘saving environment preferences’
> git push --set-upstream origin save_preferences

28. Follow the GitHub link provided in the terminal to create a new pull request and merge it to your repository.


Congratulations!

Hopefully, you have set up your Mac with a Python environment, installed an IDE to write code, customized your IDE and terminal to your liking, and saved all your preferences to your private GitHub repository.


Note - This tutorial was originally posted on my personal GitHub: https://github.com/mellamomark/setup-python-env

6 views0 comments