Skip to content

Setup your dev environment

Most of Lime CRM can run and be developed on any platform supporting Python, however running the Desktop Client requires Windows.

Platform specific infrastructure

Windows (on-prem version)

Windows (local docker version)

macOS

Ensure that linker and compiler flags are set

This is required in order for python to successfully install pyodbc and pymssql in your venv.

Example config (please verify that it's correct on your machine):

export LDFLAGS="-L$(brew --prefix)/lib"
export CPPFLAGS="-I$(brew --prefix)/include"

Install Python3.7

We recommend pyenv for installing Python3.7 globally on your machine. This article explains why.

# Install pyenv
brew update
brew install pyenv

# Install python 3.7 as the global python
pyenv install 3.7.9
pyenv global 3.7.9

Insert the following lines in your shell/terminal profile configuration:

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"

Ubuntu 20.04

sudo apt-get -y install --no-install-recommends unixodbc unixodbc-dev

Tooling

Once you have the infrastructure in place you need:

Poetry

[Poetry] is managing your Python dependencies and creates a local environment for you package or solution.

Read more about it here and how to install it properly.

Pipx

pipx installs and runs python applications in isolated environments. Pipx ensures that you don't get any version conflicts when installing lime-project and/or lime-buildtools

Install pipx with the following command:

pip install pipx

Why installing pipx when we have pip?

What pip does is to install all your packages, and their dependencies, in a central place. The way Python works, there is a good chance for a dependency conflict. Pipx does some smart things to avoid this: it creates a venv behind the scenes and installs into that, and then makes the executable available in your path. Pip is a package manager (or mostly an installer) but pipx is an application installer.

You can use pip, but it comes with some potential risks and issues, depending on what ends up in your global python.

lime-project

lime-project creates and manage Lime CRM projects.

Install lime-project with pipx:

pipx install lime-project -i <LIMETECH.pypi>

lime-buildtools

lime-buildtools is responsible for building a Lime project. It will package build any frontend components and create a Python package.

Install lime-buildtools with pipx:

pipx install lime-buildtools -i <LIMETECH.pypi>
Back to top