Skip to main content

Flux Python Bindings

🐍️ You called me?

Hello! You've found the flux Python bindings to build and deploy Flux to Pypi without needing to store code alongside Flux. This was originally developed at vsoch/flux-python and has been ported here to automate more officially. The following guides might be useful to you:

Helper Install

If you need to install on a system without Flux, please target a wheel (.whl) file directly that matches the version of Flux you intend to use it with. A vanilla pip install will try to compile from source, which requires Flux. If you don't want to figure out your flux version and install with pip directory (per instructions in manual install) we provide a helper script install-flux-python.sh that will:

  1. Determine that Flux and Python are installed with pip
  2. Parse the version of Flux on your PATH
  3. Derive the version and run the command for you!

You'll first want to make sure that flux is on your path, as is a python3 executable with pip installed as a module alongside it. And you can run it as follows:

wget https://raw.githubusercontent.com/flux-framework/flux-python/main/script/install-flux-python.sh
chmod +x ./install-flux-python.sh
./install-flux-python.sh

If a version is missing on pypi or you otherwise have a bug, please open an issue here.

Manual Install

Since we need to link to Flux libraries, you are advised to install flux and flux-security in the same location that will be discovered via the executable "flux," so typically /usr or /usr/local. You will need wheel installed:

$ pip install wheel

You can do either:

# Find the flux version on your system
flux --version

# Install the bindings that match that version
pip install flux-python==0.48.0

And if you are having trouble with the WCI cache, you can also wget the file directly from pypi and install the .tar.gz directly.

wget https://files.pythonhosted.org/packages/25/fb/02951d80e44a19db291f0e7370d4e7d82c0c1b17709a37913881f958dff7/flux-python-0.48.0rc0.tar.gz
pip install flux-python-0.48.0rc0.tar.gz

If you install to a local (personal) location (e.g., $HOME/.local) you'll need to add this to your PYTHONPATH

# The directory "flux" is under the site-packages here
export PYTHONPATH=$HOME/.local/lib/python3.7/site-packages

You can then do some basic testing.

$ flux start --test-size=4

Ensure your PYTHONPATH is correct here And import flux.

$ ipython
import flux
flux.Flux()

Development

We provide a .devcontainer environment you can open in VSCode to have an environment ready to go with Flux (and Flux Security). You can follow the instructions in the DevContainer to build the Flux Python bindings. By default, this environment installs the latest flux-core. If you want to build a custom version with Flux core you can do:

rm -rf ~/flux-core
export FLUX_VERSION=0.49.0
wget https://github.com/flux-framework/flux-core/releases/download/v${FLUX_VERSION}/flux-core-${FLUX_VERSION}.tar.gz
tar -xzvf flux-core-${FLUX_VERSION}.tar.gz
sudo mv flux-core-${FLUX_VERSION} ~/flux-core
rm flux-core-${FLUX_VERSION}.tar.gz
cd ~/flux-core
./configure --prefix=/usr
make
sudo make install

And then copy over the Python source to "flux" and build your custom archives and/or wheels:

$ rm -rf /workspaces/flux-python/flux
$ cp -R src/bindings/python/flux /workspaces/flux-python/flux
$ cd /workspaces/flux-python
# Archive
$ python3 setup.py sdist

# Wheel (will build for the python version you've targeted)
# This isn't currently being done but is a future TODO!
$ python3 setup.py sdist bdist_wheel

You can build versions of the Python wheels across 3.6 to 3.10 like:

# only need to run this once in the container
/bin/bash ./docker/install-mamba.sh

# And this to install the current Flux + version in setup.py as a wheel
# The number is the build number
/bin/bash ./docker/build-wheels.sh 2

And if you want to upload:

$ twine upload dist/*.tar.gz

Automation

In order to (eventually) support a workflow to check for a release, get the release's flux assets and build, we have a workflow script that will:

  • Get the latest flux releases
  • Compare to the latest pypi releases
  • If there is a new release (from Flux on GitHub) not in pypi, build and release

And the script also can take an optional version string that will find and build a version explicitly. You might (to test) do:

$ export GITHUB_TOKEN=xxxxxxxxxxxxx
$ python .github/scripts/check_releases.py flux-framework --version 0.46.0

That basically checks if there should be a build. It will use the container provided here to install a custom version of flux core that builds the release.

Release

SPDX-License-Identifier: LGPL-3.0

LLNL-CODE-764420

Release files for flux-python 0.88.0

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

Source distribution (sdist)

Source distribution for flux-python 0.88.0
File Size Uploaded
flux_python-0.88.0.tar.gz 374.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for flux-python 0.88.0
File
flux_python-0.88.0-0-cp314-cp314-manylinux_2_17_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
flux_python-0.88.0-0-cp313-cp313-manylinux_2_17_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
flux_python-0.88.0-0-cp312-cp312-manylinux_2_17_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
flux_python-0.88.0-0-cp311-cp311-manylinux_2_17_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
flux_python-0.88.0-0-cp310-cp310-manylinux_2_17_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
flux_python-0.88.0-0-cp39-cp39-manylinux_2_17_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
flux_python-0.88.0-0-cp38-cp38-manylinux_2_17_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details

Total release size: 4.7 MB

Release files / flux_python-0.88.0.tar.gz

Download URL flux_python-0.88.0.tar.gz
Size 374.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f697dd18370c050807e76d3e25a7b70aa3c213f34ad0d892d5b925f74c3b6950
BLAKE2b-256 checksum
How to use checksums
0ac53ab81c561256aa0a324b9a2e22e24fbb13faeb6d1cc04be7646819af8a7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / flux_python-0.88.0-0-cp314-cp314-manylinux_2_17_x86_64.whl

Download URL flux_python-0.88.0-0-cp314-cp314-manylinux_2_17_x86_64.whl
Size 621.9 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ff431d979048e116c1bbfd3d6e3ad63f97e0d035a54f7b026fe30e4149d5d61f
BLAKE2b-256 checksum
How to use checksums
8b2a4fdf6d0a65e985e0866caab747f0b92957427155bb32ca97cf404b3d115a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / flux_python-0.88.0-0-cp313-cp313-manylinux_2_17_x86_64.whl

Download URL flux_python-0.88.0-0-cp313-cp313-manylinux_2_17_x86_64.whl
Size 621.5 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
37dfc5929aebc683b3bfb640c71111a6ec33ccf767b190bf70650222d765dcda
BLAKE2b-256 checksum
How to use checksums
f9d5845442e1dd2ce35dc12442f1e61fc9fb5c370d6541ba4bfeb8aa5f65c370
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / flux_python-0.88.0-0-cp312-cp312-manylinux_2_17_x86_64.whl

Download URL flux_python-0.88.0-0-cp312-cp312-manylinux_2_17_x86_64.whl
Size 621.5 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
97dff361fa441dd6c34f99a8f93985172ba15cd1585d1b444682f7395db8131c
BLAKE2b-256 checksum
How to use checksums
f8c4605970fce658ddebcc7ba453f4bcb95373847670b05f7a4591a5da97531c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / flux_python-0.88.0-0-cp311-cp311-manylinux_2_17_x86_64.whl

Download URL flux_python-0.88.0-0-cp311-cp311-manylinux_2_17_x86_64.whl
Size 621.3 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c7ce4d05a6a220a4629dbffe4d684da7eca0b128e3f3c7176cdc13fd450f0fb2
BLAKE2b-256 checksum
How to use checksums
49801aaf78e35fb00580a48a649c3fabb980b0441559e872d5ee9403835625b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / flux_python-0.88.0-0-cp310-cp310-manylinux_2_17_x86_64.whl

Download URL flux_python-0.88.0-0-cp310-cp310-manylinux_2_17_x86_64.whl
Size 621.3 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f8424c323a23836b5a8e40f80e0328eafc44587c2dbb47bc82eeea2e19e609e7
BLAKE2b-256 checksum
How to use checksums
23dbdbcb4a7cbd4ceec787ce03ed36906f9f7b589e19595329273ea2fa7a1581
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / flux_python-0.88.0-0-cp39-cp39-manylinux_2_17_x86_64.whl

Download URL flux_python-0.88.0-0-cp39-cp39-manylinux_2_17_x86_64.whl
Size 621.4 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
48415eab9bfb0a925295c2aae74d6c10ee9321863634f347463a53a8616799ab
BLAKE2b-256 checksum
How to use checksums
27e4fe49dafa2b016827f534682a0ea0cefdf1210fd2145c6e9bc8c4a44a13ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / flux_python-0.88.0-0-cp38-cp38-manylinux_2_17_x86_64.whl

Download URL flux_python-0.88.0-0-cp38-cp38-manylinux_2_17_x86_64.whl
Size 621.4 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b0e1082d891d7675f5d2f7bb1ad8ffd12760af81b7a33fc482d424df9b3b8267
BLAKE2b-256 checksum
How to use checksums
062e2cc8f86d4e86892ecc1e57d927ce0562a8430e778fb24e02053135a7d344
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.88.0 This release

8 release files

0.87.0

8 release files

0.86.0

8 release files

0.85.0

8 release files

0.84.0

8 release files

0.83.0

8 release files

0.82.0

8 release files

0.81.0

7 release files

0.78.0

5 release files

0.77.0

5 release files

0.75.0

5 release files

0.73.0

5 release files

0.70.0

5 release files

0.68.0

6 release files

0.65.0

6 release files

0.62.0

6 release files

0.61.2

6 release files

0.61.0

6 release files

0.59.0

1 release file

0.58.1

1 release file

0.58.0

1 release file

0.57.0

1 release file

0.56.0

1 release file

0.55.0

1 release file

0.54.0

1 release file

0.53.0

1 release file

0.52.0

1 release file

0.51.0

1 release file

0.50.0

1 release file

0.49.0

5 release files

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