Skip to main content

Clyngor with clingo

This is a python package installing a clingo binary along the clyngor package, so the end-user will not have to care about the clingo installation.

The clingo binary is taken for Linux, OSX and Windows on the official release page

Installation

When someone (who doesn't understand "install clingo binary in your path") have to install clyngor, give them that line instead:

pip install clyngor-with-clingo

A clingo executable will appear in their bin. May need root access if the said someone is working at system level.

Maintenance

The package must be updated to use new clingo binaries.

Since clingo 5.4.0, potassco no longer publishes prebuilt per-OS binaries on the clingo GitHub releases page (source tarballs only). For clingo > 5.4.0, binaries are instead fetched from conda-forge, which still builds and publishes real Linux/macOS/Windows binaries for every release, and made relocatable (no conda environment needed at runtime) by fetch_clingo.py:

python fetch_clingo.py <clingo version> [conda-executable]

This must run once per OS (see .github/workflows/build-binaries.yml, which does exactly that on GitHub-hosted Linux/macOS/Windows runners and smoke-tests each binary natively, including a #script (python) block). Notes on the fetched binaries:

  • Python scripting (#script (python)) is supported, with the needed Python runtime bundled alongside the binary; Lua is not.

  • sqlite3 and tkinter are pruned from the bundled Python runtime (their native deps are huge and pointless inside an ASP solver).

  • Releases publish one platform-tagged wheel per OS/arch (Linux x86_64, macOS arm64 + x86_64, Windows x86_64), no sdist -- each wheel stays under PyPI's size limit and users only download their own OS's binaries.

  • Script retrieve-clingo.sh <clingo version> / put-clingo-version.sh <clingo version> are kept only for rebuilding older versions (<= 5.4.0), back when potassco still shipped prebuilt archives on GitHub releases.

Use zest.releaser to upload new versions ; be careful to match clingo version with package version.

How to perform this magic

The current solution: faking clingo as a python script

Link to the way of doing that. Thanks !

I end up reproducing the same entry point implementation, using pkg_resource, and it works: binaries are embedded in the package using the MANIFEST.in, and the package only real operation is to delegate command line arguments to the proper clingo binary.

This seems to work, but:

  • user has not control over the installed binary (however that package is all about having the user to not have to cope with that, but still… Experienced users should never use it)
  • the 3 binaries are sent to the user, and the choice is made at execution time.

The on-the-fly solution: hack upon setuptools to download binary at installation

Method used by pyasp.

Has a lot of drawbacks, such as binary downloading from the client side, and necessity to use --no-cache-dir pip flag to force pip to execute the hack.

The proper but non-working solution: embed a platform-specific binary into a python package

The python part of the package is simplistic (well, there could be no python in this package), be we still need a basic architecture.

platform-specific magic

Setuptools provides since PEP 508 the environment markers, theoretically usable in setup.cfg with setuptools:

[options.data_files]
bin/clingo =
    bin/linux/clingo; platform_system=="Linux"
    bin/macos/clingo; platform_system=="Darwin"
    bin/win/clingo.exe; platform_system=="Windows"

But it does not works. A question has been asked about it, also on SO.

Probably it's because data_files does not support environment markers. Hence this solution has been abandoned.

Metadata

Release files for clyngor-with-clingo 5.8.0.post1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for clyngor-with-clingo 5.8.0.post1
File
clyngor_with_clingo-5.8.0.post1-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
clyngor_with_clingo-5.8.0.post1-py3-none-manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
clyngor_with_clingo-5.8.0.post1-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
clyngor_with_clingo-5.8.0.post1-py3-none-macosx_10_13_x86_64.whl Python 3 none macOS 10.13+ x86-64 Details

Total release size: 259.0 MB

Release files / clyngor_with_clingo-5.8.0.post1-py3-none-win_amd64.whl

Download URL clyngor_with_clingo-5.8.0.post1-py3-none-win_amd64.whl
Size 88.0 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
9918290b719480fe156d720666a6c94ab2a2d6e7021c2dda86b7f2696a059212
BLAKE2b-256 checksum
How to use checksums
5a5a5d127e3a37a76f2c145bc64d6be19b88f90e0a74836282c748c6fc18baad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.

Transparency log

Release files / clyngor_with_clingo-5.8.0.post1-py3-none-manylinux2014_x86_64.whl

Download URL clyngor_with_clingo-5.8.0.post1-py3-none-manylinux2014_x86_64.whl
Size 43.0 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
01d0de4d34bdf594df87027da6ad109140917d4baf5ec8f6fc11661920e07aaa
BLAKE2b-256 checksum
How to use checksums
b4e47bf64594b41101784b6bf1d885eb8019e15146e2e81fd32390369275a053
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.

Transparency log

Release files / clyngor_with_clingo-5.8.0.post1-py3-none-macosx_11_0_arm64.whl

Download URL clyngor_with_clingo-5.8.0.post1-py3-none-macosx_11_0_arm64.whl
Size 56.8 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cd10374a95039ce215292099fa12e497d12b78f3b019b4dbae9dac9f69e45df5
BLAKE2b-256 checksum
How to use checksums
57d4620d7942832c8f82ef76c6cdf60453f9a21a5ed167f98331a4f7d9601cbc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.

Transparency log

Release files / clyngor_with_clingo-5.8.0.post1-py3-none-macosx_10_13_x86_64.whl

Download URL clyngor_with_clingo-5.8.0.post1-py3-none-macosx_10_13_x86_64.whl
Size 71.2 MB
Tags Python 3 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
a67045952c624d8a1d33d5b578e95ac23bbae75823562ab016f23b83c40b70e0
BLAKE2b-256 checksum
How to use checksums
b33d6823b55e2d8b215ef62beb1cb22b779697b2c0ef41f38c2cb4e741d3fe70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 31, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

5.8.0.post1 This release

4 release files

5.8.0

4 release files

5.4.0

2 release files

5.3.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page