Installation¶
Using the Vendored Argon2¶
python -m pip install argon2_cffi
should be all it takes.
But since argon2_cffi
vendors Argon2’s C code by default, it can lead to complications depending on the platform.
The C code is known to compile and work on all common platforms (including x86, ARM, and PPC). On x86, an SSE2-optimized version is used.
If something goes wrong, please try to update your cffi
, pip
and setuptools
first:
python -m pip install -U cffi pip setuptools
Overall this should be the safest bet because argon2_cffi
has been specifically tested against the vendored version.
Wheels¶
Binary wheels for macOS, Windows, and Linux are provided on PyPI.
With a recent-enough pip
and setuptools
, they should be used automatically.
Source Distribution¶
A working C compiler and CFFI environment are required.
If you’ve been able to compile Python CFFI extensions before, argon2_cffi
should install without any problems.
Using a System-wide Installation of Argon2¶
If you set ARGON2_CFFI_USE_SYSTEM
to 1
(and only 1
), argon2_cffi
will not build its bindings.
However binary wheels are preferred by pip
and Argon2 gets installed along with argon2_cffi
anyway.
Therefore you also have to instruct pip
to use a source distribution:
env ARGON2_CFFI_USE_SYSTEM=1 \
python -m pip install --no-binary=argon2_cffi argon2_cffi
This approach can lead to problems around your build chain and you can run into incompatabilities between Argon2 and argon2_cffi
if the latter has been tested against a different version.
It is your own responsibility to deal with these risks if you choose this path.