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.87.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.87.0
File Size Uploaded
flux_python-0.87.0.tar.gz 374.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for flux-python 0.87.0
File
flux_python-0.87.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.87.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.87.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.87.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.87.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.87.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.87.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.87.0.tar.gz

Download URL flux_python-0.87.0.tar.gz
Size 374.4 kB
Tags Source
SHA-256 checksum
How to use checksums
37f15ec5e995349cf4f0c6eaceeb48e4ca1a0e08c3048f79ea3ec73dd98536ce
BLAKE2b-256 checksum
How to use checksums
1383c991773bff1ed8565568db44e3d5c781fc3eaa525ca7450b069a9d6f6652
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.87.0-0-cp314-cp314-manylinux_2_17_x86_64.whl

Download URL flux_python-0.87.0-0-cp314-cp314-manylinux_2_17_x86_64.whl
Size 621.1 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ba1116b2721e0753345e23b9ea5af94a5d74e4512922224004b5689a28113898
BLAKE2b-256 checksum
How to use checksums
addd71223d58261457d8661479dad064f5909858e4bf610a833483c2f124e5e5
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.87.0-0-cp313-cp313-manylinux_2_17_x86_64.whl

Download URL flux_python-0.87.0-0-cp313-cp313-manylinux_2_17_x86_64.whl
Size 620.5 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b1f6918e4a9c94854ee4d5cfeb392b5e746aa7c80baa7da89e66e978c65b7e69
BLAKE2b-256 checksum
How to use checksums
a208c427a6fabd5c2438515b02c34a099d49b4875b84b882113e6b9333529084
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.87.0-0-cp312-cp312-manylinux_2_17_x86_64.whl

Download URL flux_python-0.87.0-0-cp312-cp312-manylinux_2_17_x86_64.whl
Size 620.5 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b6d7a2c4f3d9e5d1e238ff93c8d5d8b97f28074cf463ddd21d216f6bb55603e5
BLAKE2b-256 checksum
How to use checksums
4bc5895a20153dc12e5f5b56d5f16f7343300edafdf0b16c72c850fcea688bd0
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.87.0-0-cp311-cp311-manylinux_2_17_x86_64.whl

Download URL flux_python-0.87.0-0-cp311-cp311-manylinux_2_17_x86_64.whl
Size 620.4 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
bc31e8df387f193502e53e7bb860e4eb0772549387dc4bc50b338fd650f7b996
BLAKE2b-256 checksum
How to use checksums
bdb50c348fa90af50420768d01f714a0a6205e9889801fa0c4f7b6a6470dc8fc
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.87.0-0-cp310-cp310-manylinux_2_17_x86_64.whl

Download URL flux_python-0.87.0-0-cp310-cp310-manylinux_2_17_x86_64.whl
Size 620.4 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
aad98a835adc506c3ad780691206223a87c8f2ce2cc21ad8c22ecd5bf173fc7c
BLAKE2b-256 checksum
How to use checksums
f15df18b021ee9dcab113e28ed9e64e26cbabca559743265e4e956615e930acd
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.87.0-0-cp39-cp39-manylinux_2_17_x86_64.whl

Download URL flux_python-0.87.0-0-cp39-cp39-manylinux_2_17_x86_64.whl
Size 620.5 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
5b006fdf8d1c8c46b7b02aa14dad2ebd73c85cc37abbbba67a717105139044c0
BLAKE2b-256 checksum
How to use checksums
31d33b59069deafd229b4fc4c367bd28a2dea6482e42db3048aecb6660e58db8
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.87.0-0-cp38-cp38-manylinux_2_17_x86_64.whl

Download URL flux_python-0.87.0-0-cp38-cp38-manylinux_2_17_x86_64.whl
Size 620.4 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a197dfba826cfad6b27067431e49d4852cfd10bab29adcf38d96b4af281b8734
BLAKE2b-256 checksum
How to use checksums
85688aa8c6b9f7d74d31f8a080e29c3be04186bd89342aa172040943cf6c53cb
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

0.88.0

8 release files

This release

0.87.0 This release

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