0

So i recently upgraded my mailinabox installation and after that when I try to start the mailinabox service I get this error on the console

File "/root/mailinabox/management/auth.py", from expiringdict import ExpiringDict ModuleNotFoundError: No module named 'expiringdict'

I have tried and installed the modules manually using pip but it just doesn't work

user2539602
  • 618
  • 3
  • 9
  • 18
  • maybe you have two Pythons and you install module in one Python but it runs code with other Pythons. Pythons don't share modules. – furas Aug 18 '22 at 14:52

2 Answers2

0

Mailinabox has its own library directory. I found out about this by running the following commands:

# grep -R python3 /root/mailinabox/management/*.py

/root/mailinabox/management/cli.py:#!/usr/bin/python3 /root/mailinabox/management/daemon.py:#!/usr/local/lib/mailinabox/env/bin/python3 /root/mailinabox/management/mailconfig.py:# interpreter (/usr/bin/python3) as well as through the

# head -n1 /root/mailinabox/management/daemon.py

#!/usr/local/lib/mailinabox/env/bin/python3

# /usr/local/lib/mailinabox/env/bin/python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"

/usr/local/lib/mailinabox/env/lib/python3.6/site-packages

Now, knowing the directory for the mailinbox libraries, you can make symbolic links from the standard directory:

cd /usr/local/lib/mailinabox/env/lib/python3.6/site-packages

ln -s /usr/lib/python3/dist-packages/expiringdict expiringdict

ln -s /usr/lib/python3/dist-packages/expiringdict-1.1.2.egg-info expiringdict-1.1.2.egg-info

0

This command should solve the problem

# /usr/local/lib/mailinabox/env/bin/pip3 install expiringdict