25

In a Django project of mine, I run this command to run the project on localhost:

python manage.py runserver

It results in the error:

Importerror: No module named memcache

However, I've already fulfilled the requirement via: sudo apt-get install python-memcache

Peculiarly, if I go into the python shell outside my virtualevn and try import memcache, it works fine. However, inside my virtualenv, if I go into the python shell and try import memcache, I get the same import error listed above. What's going on?

Hassan Baig
  • 15,055
  • 27
  • 102
  • 205

3 Answers3

64

As you are using virtualenv you'd need to install this dependency from inside as you might have created the virtual environment before installed it as a system-wide library.

After activate your virtualenv type:

pip install python-memcached

This should solve it.

Rafael Aguilar
  • 3,084
  • 1
  • 25
  • 31
3

Based on pymemcache documentation

Since version 3.2, Django has included a pymemcache-based cache backend. See its documentation. On older Django versions, you can use django-pymemcache.

So for Django 3.2+ use :

pip install pymemcache
M3TALzero1
  • 104
  • 9
1

First run

pip install django-pylibmc

set you cache backend:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
        'LOCATION': '127.0.0.1.11211',
    }
}
Contropist
  • 401
  • 4
  • 9