Skip to content

Prerequisities

Before installing anything lime-specific, you need to make sure that you have the following tools/binaries installed on your computer:

  1. Python
  2. Node.js
  3. Docker
  4. ODBC Driver for SQL Server
  5. pipx
  6. Poetry

Installation instructions

Python

uv is a fast Python package installer and resolver that can also manage Python installations. It works on all platforms and is the recommended way to install Python.

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# Install Python 3.11
uv python install 3.11
# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install Python 3.11
uv python install 3.11
# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install Python 3.11
uv python install 3.11

uv automatically downloads Python versions as needed and doesn't require building from source. It makes installed Python versions available in your PATH automatically.

Alternatively, you can use platform-specific installation methods:

Install Python 3.11 by downloading it from https://www.python.org

Pyenv can be used to install Python on macOS.

Warning

As pyenv builds Python interpreter locally you need to install necessary pyenv build dependencies.

# Install pyenv
brew update
brew install pyenv

# Install python 3.11 as the global python
pyenv install 3.11
pyenv global 3.11

Add the following lines to your shell profile configuration (~/.zshrc or ~/.bash_profile):

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

Pyenv can be used to install Python on Linux. Installation instructions for pyenv can be found here.

Warning

As pyenv builds Python interpreter locally you need to install necessary pyenv build dependencies.

NodeJS

We recommend using fnm (Fast Node Manager) for installing and managing Node.js versions. It's fast, cross-platform, and supports automatic version switching.

# Install fnm
curl -fsSL https://fnm.vercel.app/install | bash

# Install Node.js LTS
fnm install --lts

# Use the LTS version
fnm use lts-latest

After installation, set up your shell by adding this to your shell profile (~/.zshrc or ~/.bash_profile):

eval "$(fnm env --use-on-cd)"

The --use-on-cd flag enables automatic Node.js version switching when you change directories.

Note: Alternative installation methods for Windows exists at https://fnm.vercel.app/.

Alternatively, you can install Node.js directly from nodejs.dev or use other version managers like nvm.

Docker

We recommend using Rancher Desktop for your local development environment.

As an alternative, you can install Docker and Compose standalone.

ODBC Driver for SQL Server

Install the MSODBC driver 18 by following the guide here

Install the MSODBC driver 18 by following the guide here

Please also make sure that you install sqlcmd, and that it's added to your PATH.

Install the unixodbc driver:

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

Install the MSODBC driver 18 by following the guide here

Please also make sure that you install sqlcmd, and that it's added to your PATH.

macOS only: Configure to use source distribution of pyodbc

On macOS (especially Apple Silicon), the pyodbc package must be built from source rather than using prebuilt wheels. This is because prebuilt pyodbc wheels on Apple Silicon are often linked to the system ODBC libraries (such as the system-provided unixODBC or iODBC frameworks), rather than the Homebrew-installed unixODBC and Microsoft's ODBC Driver for SQL Server (msodbcsql18).

Linking pyodbc to the system ODBC libraries is incorrect for SQL Server connectivity, because the system frameworks are not compatible with Microsoft's ODBC driver and are not supported for this use case. To ensure reliable operation, pyodbc must be built and linked against the Homebrew-installed unixODBC and the msodbcsql18 driver (both installed via Homebrew). This ensures that pyodbc uses the correct ODBC implementation and can communicate properly with SQL Server. If you skip this configuration, you'll encounter this error when trying to use pyodbc:

ImportError: ... symbol not found in flat namespace '_SQLAllocHandle'

Configure linker and compiler flags

Building pyodbc from source requires linker and compiler flags to be set. Add these lines to your shell profile configuration (~/.zshrc or ~/.bash_profile):

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

These flags ensure that the build process can find the necessary libraries and headers installed by Homebrew. After adding these lines, restart your terminal or run source ~/.zshrc (or your respective profile file) to apply the changes.

Configure your package managers to build pyodbc from source

Poetry

Run this command once to configure Poetry:

poetry config installer.no-binary "pyodbc"
uv

Add the following configuration to your global ~/.config/uv/uv.toml:

[pip]
no-binary = ["pyodbc"]
pip

Add the following configuration to your global ~/.config/pip/pip.conf:

[install]
no-binary = pyodbc

If you have skipped the pip configuration above, you must manually fix it each time you create a new virtual environment:

pip install --pre --no-binary :all: "pyodbc<5.0.0" --force-reinstall \
    -i https://pypi.python.org/simple --force

Note: Use pipx runpip, uv run pip, poetry run pip to run pip install in the virtualenvs managed by these tools

pipx

Install pipx and ensure that it's added to your path:

pip install pipx

Poetry

We currently support version 1.3.2 installed with Python 3.11 for solution projects, but 1.8.3 and 2.0 may work.

Install Poetry, preferably with pipx:

pipx install --python "C:\Program Files\Python311\python.exe" poetry==1.3.2

If you installed Python 3.11 to a different location, update the path accordingly.

pipx install --python python3.11 poetry==1.3.2

If you have multiple Python versions, you may need to specify the full path to your Python 3.11 executable:

pipx install --python $(which python3.11) poetry==1.3.2

pipx install --python python3.11 poetry==1.3.2

If you have multiple Python versions, you may need to specify the full path to your Python 3.11 executable:

pipx install --python $(which python3.11) poetry==1.3.2

Warning

You may get invalid poetry.lock files with build errors if using the wrong Python version. Run pipx uninstall poetry and then the command above again to reinstall Poetry. Verify that your Poetry installation actually is using Python 3.11 by running pipx list.