19

I'm trying to use Django's storages backend (for BotoS3)

settings.py:

INSTALLED_APPS = (
...
'storages',
...
)

as shown in http://django-storages.readthedocs.org/en/latest/index.html.

and, requirements.txt:

django-storages==1.1.8

But am getting the error:

django.core.exceptions.ImproperlyConfigured: ImportError storages: No module named storages

What am I doing wrong?

TylerH
  • 20,799
  • 66
  • 75
  • 101
tldr
  • 11,924
  • 15
  • 75
  • 120
  • 3
    Have you installed `django-storages` using `pip install` before or after adding it to the requirements file? – shaktimaan Apr 21 '14 at 23:07
  • i had installed it before adding it to re.txt. But I just did a pip install again, and still get the same issue. Does the order make a difference, and if so how so? – tldr Apr 21 '14 at 23:15
  • No the order is immaterial, I was just making sure you had actually installed it. Are you in a virtualenv and installing it and running it in after activating the virtualenv? – shaktimaan Apr 21 '14 at 23:16
  • d'oh, i'm an idiot! Yep, installing it in virtualenv resolved the issue. If you add that as an answer, I'll accept it. – tldr Apr 21 '14 at 23:58
  • We have all been there ;) – shaktimaan Apr 22 '14 at 00:01
  • I am getting the "ImportError: No module named storages" after pip installing django-storages in my virtual environment and updating requirements.txt I get the error when running `python manage.py collectstatic` – Steve Nelson Jun 02 '16 at 21:47

8 Answers8

24

There is a possibility that you are in a virtualenv and installing the package outside the virtualenv into the default python installation. Make sure you are not doing that.

shaktimaan
  • 11,962
  • 2
  • 29
  • 33
12

If you are experiencing this error even though you've included 'storages' in your INSTALLLED_APPS and django-storages in your requirements.txt, check your STATICFILES_STORAGE variable.

For previous versions of django-storages, this should be set as:

STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

For newer versions of django-storages, the package uses boto3 instead of boto and this variable should be set as:

STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

If you're using either version and you've configured your DEFAULT_FILE_STORAGE setting incorrectly, you'll receive an import error.

The correct settings can be found in the django-storages docs

Daniel Long
  • 1,162
  • 14
  • 30
11

I had the same problem. In my case I solved the problem with

pip install django-storages

Collecting django-storages
  Downloading django_storages-1.6.5-py2.py3-none-any.whl (47kB)
    100% |################################| 51kB 358kB/s
Installing collected packages: django-storages
Successfully installed django-storages-1.6.5

It was executed inside my virtual environment.

emma ray
  • 13,336
  • 1
  • 24
  • 50
Daniel Silva
  • 95
  • 1
  • 3
3

I had installed it within virtual env and was running the exact same issue. My problem was that I forgot to update my requirements.txt. So make you update that file!

YAL
  • 651
  • 2
  • 7
  • 22
1

If you are using Pipenv make sure you install django-storages using

pipenv install django-storages

so that the Pipfile and Pipfile.lock are both updated.

I had installed using pip inside the virtualenv and requirements.txt was updated but still receiving this error. After digging around I noticed it was not added to the Pipfile. I ran the installer and it cleared up the error.

1

I installed with: pip install -U django-storages

If you go to venv/lib/python3.8/site-packages/storages/backends you will see no file named S3Boto but S3Boto3. I dropped in an old S3Boto file from an old virtual environment and everything worked again.

Atma
  • 29,141
  • 56
  • 198
  • 299
0

I was using virtual environment and installed django-storage as well as boto3 . But still I was getting these errors.

Initially I installed the packages using this command

pip install django-storages, boto3

This command solved my Issue

pip install -U django-storages
pip install -U boto3
  • It updates the packages
0

EDX only if you are in local then run this command

paver update_assets --theme-dirs=/edx/app/edxapp/edx-platform/themes/theme-name/
Neeraj Kumar
  • 133
  • 1
  • 4