Skip to content

Installation

Timothy Ko edited this page Dec 23, 2018 · 8 revisions

Installation and Setup

For development, you may can choose whether to use Docker or not to setup and run this application. Utilizing Docker to provide the same development environment across your team. This will eliminate aggravating environment troubleshooting in different Operating Systems. I'd recommend that you use regular setup above if you have a Mac due to the script. We will not be using Docker in production since deployment using Heroku is easier. Check out this blog post I wrote for more information.

If you are using Docker, visit here.

If you are not using Docker, the instructions to setup are in the next section.

Regular Setup

We will be using pip and virtualenv. For ease of use, I recommend setting up virtualenvwrapper, a wrapper around virtualenv, which makes things a lot easier when managing virtual environments. Remember to set it up for python3.

If you have Windows, visit here for setup instructions.

If you have Linux, follow the step-by-step instructions, replacing brew with whatever the default package manager is (ex: yum for Fedora and apt-get for Ubuntu)

If you have a Mac, you can either run the setup script or follow the step by step instructions.

We used to use pipenv but many problems occurred with it (different dev environments, different python versions, docker, CI, etc) so I've switched back to using virtualenv and pip. my previous reasoning of using pipenv..

We will be using pipenv, the recommended package manager for Python. Instead of having to use virtualenv and pip, Pipenv enforces you to use virtual environments, which is something most experienced python developers already do. This allows newer Python developers to already use great practices in the beginning and reduces the barrier to entry. For a better understanding and list of commands you can use with pipenv, look into the official documentation.

If you'd like to use pipenv, follow the instructions to import from a requirements.txt file.