110

In a project, I have e.g. two different packages, How can I use the setup.py to install these two packages in the Google's Colab, so that I can import the packages?

Banee Ishaque K
  • 451
  • 8
  • 19
Lin Jianjie
  • 1,100
  • 2
  • 5
  • 4

6 Answers6

102

You can use !setup.py install to do that.

Colab is just like a Jupyter notebook. Therefore, we can use the ! operator here to install any package in Colab. What ! actually does is, it tells the notebook cell that this line is not a Python code, its a command line script. So, to run any command line script in Colab, just add a ! preceding the line.

For example: !pip install tensorflow. This will treat that line (here pip install tensorflow) as a command prompt line and not some Python code. However, if you do this without adding the ! preceding the line, it'll throw up an error saying "invalid syntax".

But keep in mind that you'll have to upload the setup.py file to your drive before doing this (preferably into the same folder where your notebook is).

Hope this answers your question :)

Ashutosh Pathak
  • 1,203
  • 1
  • 6
  • 11
  • your answer would be easier to read if it weren't split into a list – avigil Jul 14 '18 at 19:17
  • 3
    I just ran `!setup.py install` and it shows `/bin/bash: setup.py: command not found`. I have uploaded the whole package and the setup.py file exists in the same folder as the notebook – Rohit Kumar May 01 '19 at 11:04
  • 1
    Sorry for the late response. Did you try `!python setup.py install`? – Ashutosh Pathak Jul 13 '19 at 11:38
  • It seems that it is not possible to directly provide url of setup.py from github. – keramat Oct 31 '19 at 07:39
  • I do not understand the difference between !pip and pip, both are giving same results i.e., installing the package without any error, mind if someone could clear that? – YashvanderBamel Feb 09 '21 at 04:58
  • @keramat: it is possible to install Python packages from GitHub, but not by referring to its `setup.py`. Rather, to install e.g. `scipy` use: `!pip install git+https://github.com/scipy/scipy.git`. The gist here is to use `git+https` in the URL. `pip` will try to find `setup.py` in the URL and install as usual. – Benjamin B. Feb 12 '21 at 11:27
39

Let's say you want to install scipy. Here is the code to install it:

!pip install scipy
iacob
  • 7,935
  • 4
  • 26
  • 52
Ravi
  • 1,805
  • 12
  • 23
34

A better, more modern, answer to this question is to use the %pip magic, like:

%pip install scipy

That will automatically use the correct Python version. Using !pip might be tied to a different version of Python, and then you might not find the package after installing it.

And in colab, the magic gives a nice message and button if it detects that you need to restart the runtime if pip updated a packaging you have already imported.

BTW, there is also a %conda magic for doing the same with conda.

Doug Blank
  • 1,571
  • 13
  • 32
15

Joining the party late, but just as a complement, I ran into some problems with Seaborn not so long ago, because CoLab installed a version with !pip that wasn't updated. In my specific case, I couldn't use Scatterplot, for example. The answer to this is below:

To install the module, all you need is:

!pip install seaborn

To upgrade it to the most updated version:

!pip install --upgrade seaborn

If you want to install a specific version

!pip install seaborn==0.9.0

I believe all the rules common to pip apply normally, so that pretty much should work.

marcogemaque
  • 307
  • 5
  • 12
1

To import a library that's not in Colaboratory by default, you can use !pip install or !apt-get install.

!pip install matplotlib-venn
iacob
  • 7,935
  • 4
  • 26
  • 52
0
  1. Upload setup.py to drive.
  2. Mount the drive.
  3. Get the path of setup.py.
  4. !python PATH install.
keramat
  • 825
  • 2
  • 14
  • 30