Installation ============ Install from PyPI ----------------- PyMD4C is available on PyPI under the name |pymd4c|_. Install it with pip like this:: pip install pymd4c .. |pymd4c| replace:: ``pymd4c`` .. _pymd4c: https://pypi.org/project/pymd4c/ This is the recommended method to obtain PyMD4C. It should work well on most Linux distributions, Windows, and macOS. If this does not work, there are a couple potential reasons: 1. You do not have pip installed, or your version is too old. See `Installing Packages - Python Packaging User Guide`_. 2. A prebuilt package is not available for your platform, and pip could not build it from source (likely because the necessary dependencies were not available). Regarding reason #2: Since this package contains C extensions, it is built as a platform wheel. Prebuilt packages are available for recent versions of Python on a variety of platforms. See the `files page on PyPI`_ for a full list. Pip will automatically attempt to build from source on other platforms, but it will fail if the build dependencies are not available. See :ref:`prerequisites` for information on installing them. If a prebuilt package is not available or not working for your platform and you think it should be, consider opening a `GitHub issue`_. .. _Installing Packages - Python Packaging User Guide: https://packaging.python.org/tutorials/installing-packages/ .. _files page on PyPI: https://pypi.org/project/pymd4c/#files .. _manylinux2014: https://github.com/pypa/manylinux .. _GitHub issue: https://github.com/dominickpastore/pymd4c/issues Build and Install from Source ----------------------------- .. _prerequisites: Prerequisites ~~~~~~~~~~~~~ This package depends on the MD4C library. It may be available through your package manager. Otherwise, it can be built from source as follows: 1. Make sure you have CMake_ and a C compiler installed. 2. Download and extract MD4C from the `MD4C releases`_ page. See the CHANGELOG_ or `about.json`_ for recommended versions to use. PyMD4C is tested against the minimum and maximum MD4C versions listed in those files. If there is a newer version of MD4C available, it is likely to work as well, but has not been tested yet. 3. On Unix-like systems (including macOS): - Inside the extracted file, run the following:: mkdir build cd build cmake .. make # Do as root: make install The install step must be run as root. The library will install to /usr/local by default. - You may need to rebuild the ldconfig cache (also as root):: ldconfig 4. On Windows: - Inside the extracted file, run the following:: mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release .. cmake --build . --config Release cmake --install . The library will install to "C:/Program Files (x86)/MD4C/" by default. In addition, on Unix-like systems (including macOS), the ``pkg-config`` tool must be available to build PyMD4C. After PyMD4C is built, it is no longer required (that is, it is not a prerequisite for actually *using* PyMD4C). This tool is likely available on your system already, so this should not be an issue in most cases. Finally, note that since this package uses C extensions, development headers for Python must be installed for the build to succeed. If you are using Linux, some distributions split these off from the main Python package. Install ``python-dev`` or ``python-devel`` to get them. .. _CMake: https://cmake.org/ .. _MD4C releases: https://github.com/mity/md4c/tags .. _CHANGELOG: https://github.com/dominickpastore/pymd4c/blob/master/CHANGELOG.md .. _about.json: https://github.com/dominickpastore/pymd4c/blob/master/about.json Build/Install ~~~~~~~~~~~~~ Build and install as you would for any Python source repository. Download and extract a release or clone the repository, and run the following inside:: pip install . Alternatively, you can have pip fetch and build from the latest source distribution on PyPI:: pip install --no-binary pymd4c pymd4c Note that on Windows, setup.py assumes the MD4C library was installed at "C:/Program Files (x86)/MD4C/" (this is the default location when building MD4C from source, as described above). If this is not the case, you will need to set an environment variable ``MD4C_PATH`` to the location it was installed to, or installation will fail. (This environment variable need only be set during the ``pip install``. It will not be required after that.)