Download and Installation
=========================
Dependencies
------------
**python-discid** works with Python 3 >= 3.10.
The module :mod:`discid` cannot be imported
without `libdiscid`_ >= 0.2.2 installed.
If you want to use it as optional dependency,
import the module only when needed or catch the :exc:`OSError`
when libdiscid is not found.
Package Repositories (Linux)
----------------------------
If you are using Linux,
you might find **python-discid** in a repository used by your package manager.
These packages are known:
* Arch Linux:
`python-discid `_
* Fedora:
`python3-discid `_
* openSUSE:
`python-discid `_
* Ubuntu:
PPA (`musicbrainz-stable `_
and `musicbrainz-daily `_)
Your package manager will also handle the *libdiscid* dependency automatically.
PyPI
----
The next-best option is to load the Package from
`pypi `_
with `pip `_::
pip install discid
You still have to install `libdiscid`_.
Source Code
-----------
The code is available from `GitHub`_
as :source_download:`zip` and :source_download:`tar.gz`.
You can always get the latest code with :command:`git`::
git clone https://github.com/metabrainz/python-discid.git
Installation
************
You can use **python-discid** already when you put the folder :file:`discid`
in the same location you run your script from
or somewhere in your :envvar:`PYTHONPATH`.
System-wide installation from local source can be done with pip::
python -m pip install .
Running tests
*************
You can test your setup (including `libdiscid`_) with `pytest`_::
pytest
Some additional tests can be run that require the presence of a CD drive with an
inserted audio CD. The exact audio CD does not matter, any valid audio CD should work.
To run those tests set the environment variable ``PYTHON_DISCID_TEST_DEVICE`` to a
non-empty value and run pytest::
PYTHON_DISCID_TEST_DEVICE=1 pytest
.. _GitHub: https://github.com/metabrainz/python-discid
.. _pytest: https://pytest.org/
Libdiscid
---------
If you don't have a package manager
that takes care of the *libdiscid* dependency,
you have to download it manually.
You can find several builds and the source
at https://musicbrainz.org/doc/libdiscid.
If no build for your platform is available,
you have to build from source and install with::
cmake .
make
make install
If the last step doesn't work for you,
you might have to place the files :file:`discid.DLL`, :file:`libdiscid.*.dylib`
or :file:`libdiscid.so.*`
(depending on your platform)
in the same directory as you start your script from
or somewhere in your :envvar:`PATH`.