ImportError: Missing optional dependency 'S3Fs'. The S3Fs package is required to handle S3 files. Use pip or conda to install S3Fs

adithya gopikrishnan picture adithya gopikrishnan · Feb 4, 2020 · Viewed 12.2k times · Source

I am using AWS Cloud9 as my IDE.

import boto3
import pandas as pd
# import s3fs
# s3_ob=boto3.resource('s3',aws_access_key_id="xxxxxxxxxx",aws_secret_access_key="xxxxxxxxxxxx")
client=boto3.client('s3')
path="s3://xxxxxx/FL_insurance_sample.csv"

df=pd.read_csv(path)
# df.head()
print(df)`

While I am able to get the output CSV file in Pycharm, when I use the same code in Cloud9 IDE on AWS I get the error mentioned in title.

I have installed the S3Fs using the pip install S3Fs and when I do "pip list" it does give me the list installed which contains S3Fs so I am confused, why am I getting this error when the module is already installed and it shows in the pip list, and I also tried uncommenting the import S3Fs and still the same error is there.

Please help me.

Answer

Saurabh Jain picture Saurabh Jain · Jun 9, 2020

Installed the s3fs package using pip. It was showing up in pip list. But it did not show up when I did: conda list.

I resolved this problem by doing the following steps:

  1. Installed the s3fs dependecy using conda install -c conda-forge s3fs
  2. Restarted kernel
  3. Imported s3fsand pandas
  4. Read the csv file which was in my s3 bucket.

PS: It was library issue.