docs: add debian prerequisites
- Fixed a typo
Prequisits
→Prerequisites
- Add prerequisites for running on Debian.
- Install
pillow
before 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. ^-^'