---
title: "How to install scikit-automl in a Kaggle notebook"
description: "error: command 'swig' failed with exit status 1 while installing scikit-automl"
author: "Bartosz Mikulski"
author_bio: "Principal AI Engineer & MLOps Architect. I bridge the gap between \"it works in a notebook\" and \"it works for 200 million users.\""
author_url: https://mikulskibartosz.name
author_linkedin: https://www.linkedin.com/in/mikulskibartosz/
author_github: https://github.com/mikulskibartosz
canonical_url: https://mikulskibartosz.name/how-to-install-scikit-automl-in-a-kaggle-notebook
---

I wanted to give scikit-automl a try, but I don’t like to install many packages on my machine. Conda solves the problem of creating a mess, although it does not deal with the issue of running unknown code on my computer. Hence, I decided to try it on Kaggle.

I followed the installation instructions and did not expect any issues. After all, the instruction consists of only two steps:

```
!curl https://raw.githubusercontent.com/automl/auto-sklearn/master/requirements.txt | xargs -n 1 -L 1 pip install
!pip install auto-sklearn
```

## What can go wrong?

Swig. Swig can go wrong. I was installing the packages, and at some point, I saw this error message. Pip was installing the pyrfr package but failed because of a problem with swig.

```
building 'pyrfr._regression' extension
    swigging pyrfr/regression.i to pyrfr/regression_wrap.cpp
    swig -python -c++ -modern -features nondynamic -I./include -o pyrfr/regression_wrap.cpp pyrfr/regression.i
    unable to execute 'swig': No such file or directory
    error: command 'swig' failed with exit status 1
```

It turns out that Kaggle has some old swig version installed on their machines, but we can quickly fix it:

```
!apt-get remove swig
!apt-get install swig3.0
!ln -s /usr/bin/swig3.0 /usr/bin/swig
```

After that change, I ran the installation script, and everything worked fine.