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.86.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.86.0
File Size Uploaded
flux_python-0.86.0.tar.gz 374.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for flux-python 0.86.0
File
flux_python-0.86.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.86.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.86.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.86.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.86.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.86.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.86.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.86.0.tar.gz

Download URL flux_python-0.86.0.tar.gz
Size 374.3 kB
Tags Source
SHA-256 checksum
How to use checksums
bb24f95c05b6af9b2de3a0d4094e6c1b4c2a18a26a9f29597cc7430501193d02
BLAKE2b-256 checksum
How to use checksums
a075626ebc3efce43c199913680037eaf634998b1078e0a9faa58a1f769bc540
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.86.0-0-cp314-cp314-manylinux_2_17_x86_64.whl

Download URL flux_python-0.86.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
d4ac2c0ab3697644b803fc9df428749a83ce50be43d6c36c9c43806d2a59513d
BLAKE2b-256 checksum
How to use checksums
c3055051f7d15e058bdf327dde975170bfad1642193e137bc209a81996a2263f
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.86.0-0-cp313-cp313-manylinux_2_17_x86_64.whl

Download URL flux_python-0.86.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
3140284a9307084fe535075674d19f760f1e158b4611b2b7bc0e993f951e031d
BLAKE2b-256 checksum
How to use checksums
b5bea7b04031e2facda88049124353382f5ed463447dab8dc1e0e0850e106ee2
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.86.0-0-cp312-cp312-manylinux_2_17_x86_64.whl

Download URL flux_python-0.86.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
4c6db625f4bcb32d06bdcbbe9972f926483cb6befaafa68c1dca1cb4bc34ba49
BLAKE2b-256 checksum
How to use checksums
047dcaf530e74cdd29b6aa8db6527c211ed3ba2a091dad6765cfd0f65973029f
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.86.0-0-cp311-cp311-manylinux_2_17_x86_64.whl

Download URL flux_python-0.86.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
81779b13a1dc4fa7768d4c5b3c6553388ee961eb57797d5dda9430c2dc7072fa
BLAKE2b-256 checksum
How to use checksums
37ce9132cfed9cbaaaffda6f9c1d088a1570c65edc7975bb3001e89593a0b246
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.86.0-0-cp310-cp310-manylinux_2_17_x86_64.whl

Download URL flux_python-0.86.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
f851431223545917692f7a3e4cd7aaa6de2f1d98e53787f29acc8bf40f473794
BLAKE2b-256 checksum
How to use checksums
bfca64445b3a859cd0b41861361d4a7e13ef68d5431939a49ca8c38665bf6e4c
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.86.0-0-cp39-cp39-manylinux_2_17_x86_64.whl

Download URL flux_python-0.86.0-0-cp39-cp39-manylinux_2_17_x86_64.whl
Size 620.4 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e66f8a0aad27cac91c4d65b04126715a0056c864e609de551837a79ceed8f0e1
BLAKE2b-256 checksum
How to use checksums
ee40165f047964febd2b562955dbb130b8d03dc5a9a9b6a65e94aee92bdeb19b
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.86.0-0-cp38-cp38-manylinux_2_17_x86_64.whl

Download URL flux_python-0.86.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
8d40600f8892333fa00a66e9d41c10d991059ea4c06d485c5e5c8c2f49deb489
BLAKE2b-256 checksum
How to use checksums
e35d6169bf707bc6c3ba2203d6cde3ef69ec4928a2b1aec8869888ed1df531ce
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

0.87.0

8 release files

This release

0.86.0 This release

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