docs: add debian prerequisites
- Fixed a typo
Prequisits→Prerequisites - Add prerequisites for running on Debian.
- Install
pillowbefore installing other dependencies
Issues During Development
mysqlclient
mysqlclient requires either the mariadb_config command or mysql_config command be available.
/bin/sh: 1: mysql_config: not found
/bin/sh: 1: mariadb_config: not found
This is why libmariadb-dev is in the prerequisites for Debian.
Easiest solution is to just install libmariadb-dev since this is available in the default repos.
python-ldap
python-ldap requires some headers that come from libldap2-dev and libsasl2-dev.
Modules/common.h:15:10: fatal error: lber.h: No such file or directory
15 | #include <lber.h>
| ^~~~~~~~
compilation terminated.
error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
----------------------------------------
ERROR: Failed building wheel for python-ldap
Modules/LDAPObject.c:16:10: fatal error: sasl/sasl.h: No such file or directory
16 | #include <sasl/sasl.h>
| ^~~~~~~~~~~~~
compilation terminated.
error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
----------------------------------------
ERROR: Failed building wheel for python-ldap
This is why libldap2-dev and libsasl2-dev are in the prerequisites for Debian.
Identicons
While install dependencies, Identicons expects Pillow to be installed already.
ERROR: Command errored out with exit status 1:
command: /ivatar/.virtualenv/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-cr5_wd28/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-cr5_wd28/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-cehahb5b
cwd: /tmp/pip-req-build-cr5_wd28/
Complete output (7 lines):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-req-build-cr5_wd28/setup.py", line 4, in <module>
import Identicon
File "/tmp/pip-req-build-cr5_wd28/Identicon/__init__.py", line 6, in <module>
from PIL import Image, ImageDraw
ModuleNotFoundError: No module named 'PIL'
So I moved the command to install pillow to be before installing dependencies.
I actually ran into more problems, but maybe they were my fault.
I ran a Debian Docker container to verify if end-to-end this is enough to get the project going, and it works perfectly fine. You can easily test this by spinning up a Debian container yourself!
On my host machine, I had issues with use_2to3 not being available, and for some reason, I had to dive into .virtualenv/lib/python3.9/site-packages/pagan directory and replace any imports for pagan with from pagan import xyz, otherwise the modules would fail to resolve.
Neither of those issues happened on the container though, so maybe I just did something stupid. ^-^'