Home > front end >  Google Colab: pip install and imports from a custom script
Google Colab: pip install and imports from a custom script

Time:04-21

In MyDrive/colab a I have these files:

00-imports.py with content...

!pip install boto3

classes.py with content...

class Test

  def __init__(self):
    print('test objecjt created')

  def test1(self):
    print('test::test1')

Now, my notebook looks like this...


from google.colab import drive
drive.mount('/content/drive', force_remount=True)


import sys 
sys.path.insert(0, '/content/drive/MyDrive/colab')

from classes import Test

t = Test()

print(t.test1)

import boto3
AWS_ACCESS_KEY_ID = '****'
AWS_SECRET_ACCESS_KEY = '****'

s3 = boto3.client("s3", aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY)

If I run it....

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-3-a227f9818978> in <module>()
      3 AWS_SECRET_ACCESS_KEY = 'YgevaTvOHLs/fqfkoZ/MpX kOMQa14sqhyCfcTTz'
      4 
----> 5 s3 = boto3.client("s3", aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY)

NameError: name 'boto3' is not defined

It's any way to call pip from my drive scripts? It's any way to do the imports in those scripts?

The idea is create some libs in order to clean colab notebooks. Revome instalations, imports and clients from main notebook page and hidde all this stuff in my drive scripts.

CodePudding user response:

You can't install boto3 like that in a .py file If you strictly want to use a python file, you can install it like that:

import subprocess

subprocess.call(['pip', 'install', "boto3"]) 

or you could make an install.sh script containing your installs and you can execute that script using !sh install.sh or !bash install.sh

CodePudding user response:

Id did it this way...

import os

requisite='boto3'
os.system(f"pip install requisite")
  • Related