Seafile Server 7.1.4 for Raspberry Pi is ready! 23.05.2020

@axstet already give you the hint :slight_smile: update your python

The infos are on the top of the thread.

I already have python 3.6

ls /usr/local/bin/
2to3-3.6         easy_install-3.6  keyring  pip2.7  pocketsphinx_batch         pydoc3.6   python3.6m         python3.7m-config  sphinx_cont_seg    sphinx_lm_eval
2to3-3.7         easy_install-3.7  pihole   pip3    pocketsphinx_continuous    pydoc3.7   python3.6m-config  pyvenv-3.6         sphinx_fe          sphinx_pitch
django-admin     idle3.6           pip      pip3.6  pocketsphinx_mdef_convert  pyjwt      python3.7          pyvenv-3.7         sphinx_jsgf2fsg    sqlformat  idle3.7           pip2     pip3.7  __pycache__                python3.6  python3.7m         sphinx_cepview     sphinx_lm_convert  virtualenv

make a python -V and you will understand why

I understand that, that points to the default python 2.7, which I don’t think it would be smart to change if the OS assumes that to be v 2.7, no?

You don’t need to, but then you need to setup your seafile and seahub service to use your python >= 3.6 installation.

This is a friendly reminder. Please read the other notes on the top.

Like I said, I do have Python 3.6. What is not clear from the instruction above, sorry!, is then how to force Seafile to use the already available python3.6 executable.

I have read the link you provide, but it’s still unclear.

Should be ok to link python3 to python3.6 or python3.7. What is the output of python3 -V? If not > = 3.6, change link in /usr/bin/. Alternatively read about ‘systemd’ and ‘Environment’ or ‘EnvironmentFile’ option.


I managed to fix the " ModuleNotFoundError: No module named ‘Image’ " error on Raspberry Pi OS Buster Lite by running the following command:

sudo apt install libtiff5

I ended up upgrading my OS to Ubuntu 18.04, which of course broke everything else running on my server, but at least now Seafile uses Python 3.6.
N.B.: Even after the OS upgrade, I had some import errors from seahub, due to missing packages, although I had installed them globally with pip3 prior. Therefore, I reinstalled them ‘locally’ to Seafile by running sudo -u seafile bash -c "pip3 install -U pillow django-pylibmc -t /var/www/seafile/seafile-server-latest/seahub/thirdpart", and that did the trick.

Thank you @jobenvil - upgrading with following your detailed instructions worked perfectly for me.

I am also having trouble starting seahub after upgrading to 7.1.4:

Starting seahub at port 8000 ...                                                                                                                                                                                   
Traceback (most recent call last):                                                                                                                                                                                 
  File "/home/seafile/seafile-server-7.1.4/seahub/seahub/avatar/", line 23, in <module>                                                                                                                   
    from PIL import Image                                                                                                                                                                                          
  File "/home/seafile/seafile-server-7.1.4/seahub/thirdpart/PIL/", line 93, in <module>                                                                                                                    
    from . import _imaging as core
ImportError: cannot import name '_imaging' from 'PIL' (/home/seafile/seafile-server-7.1.4/seahub/thirdpart/PIL/

My system:

Python 3.7.3
Kernel: 4.19.66-v7+ armv7l (32 bit) 
Distro: Raspbian GNU/Linux 10 (buster)

I installed:


I tried to install Pillow to thridpart:

sudo pip3 install -U pillow -t /var/www/seafile/seafile-server-latest/seahub/thirdpart

I also tried sudo pip3 install pillow and sudo -u seafile pip3 install pillow but nothing helps.

What am I missing out?

This is my second attempt. After failing to run it on Raspian Stretch, I upgraded to Buster and installed 7.1.4_pi-buster-stable. Might there be some leftovers from the stretch attempt? If so, what do I need to clean?

@aveltens Maybe this :point_up_2:

1 Like

Thanks for the quick response. My understanding is, I do not need the symlink since the directory is already named python3.6 and I did not get any errors regarding such a path issue. Or do I need the link the other way arround then ln -s python3.6 python3.7?

It depends on which os you downloaded. Stretch had the directory /python3.6 and Buster /python3.7. If you still see /python3.6 it means that you have still have installed the Strech version instead of Buster, unless you renamed did earlier.

1 Like

oh damn, you’re right. My ansible script actually did not download the buster version, but used the cached strech download :man_facepalming:

I added the symlink and now it seams to start without error, BUT it does not seam to reach a started state:

 seahub.service - Seafile hub
   Loaded: loaded (/etc/systemd/system/seahub.service; enabled; vendor preset: enabled)
   Active: activating (start) since Mon 2020-06-01 14:35:11 CEST; 3min 2s ago

Oh never mind, I just forgot to switch back to daemon=True. Everything is back to normal now. Thanks for your help and patience.

Also big thanks for your very detail initial post wich solved serveral of my inital problems / questions. Would be great if such a post is linked from the Release notes on github for the next releases.

Yes, actually there is some warning regarding the official support channel, but it could be explicitedly the indication to go to the forum to see the recomendations.

Sorry for this late answer.
I have commented out the “CACHES” part inside now. And it works now (without memcached?). I don’t know, but i think its faster then before. Weird.
Memcached is running. But you could be right. i never understood how memcached works.
Is it recommended to use on Seafile server on Raspberry Pi’s?

~ $ service memcached status
memcached.service - memcached daemon
Loaded: loaded (/lib/systemd/system/memcached.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2020-05-31 06:10:38 CEST; 1 day 15h ago
Docs: man:memcached(1)
Main PID: 487 (memcached)
Tasks: 10 (limit: 4915)
Memory: 4.2M
CGroup: /system.slice/memcached.service
└─487 /usr/bin/memcached -m 64 -p 11211 -u memcache -l

~ $ memcached -V
memcached 1.5.6

Thank you very much for your help! :slightly_smiling_face:

1 Like

I never used memcached in my installations, because I read somewhere that it was only recommended, if more than 50 people access the webinterface simultaneously. This is not the case for my installations. For updating to 7.1.4 I now had to install the memcached modules (otherwise the upgrade-Script wouldn’t run), but I also noticed that with memcached backend activated in the installations were slower than before. So I commented out the memcached Settings in and again noticed a speed gain.

1 Like