跳转到主要内容

Flux资源管理器API的Python绑定

项目描述

Flux Python绑定

🐍️ 你叫我吗?

你好!你找到了Flux Python绑定,这是一个实验,旨在将Flux构建并部署到PyPI,而不需要将代码与Flux存储在一起。这个实验的目的是单独测试它们。这最初是在vsoch/flux-python中开发的,并已移植到这里以更正式地执行。以下指南可能对您有所帮助

辅助安装

如果您不想弄清楚Flux版本并按照手动安装中的说明使用pip目录安装,我们提供了一个辅助脚本install-flux-python.sh,它将

  1. 确定Flux和Python已通过pip安装
  2. 解析PATH上的Flux版本
  3. 为您推导版本并执行命令!

您首先需要确保Flux在您的路径中,并且有一个安装了pip的python3可执行文件作为模块一起运行。您可以按照以下方式运行它

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

如果PyPI上没有某个版本,或者您遇到了其他bug,请在此处创建一个问题。

手动安装

由于我们需要链接到Flux库,建议您将flux和flux-security安装在同一位置,该位置将通过“flux”可执行文件被发现,通常是/usr/usr/local。您需要安装wheel

$ pip install wheel

您可以选择以下任一方法

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

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

如果您在使用WCI缓存时遇到问题,您也可以直接从PyPI下载文件,并直接安装.tar.gz。

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

如果您安装到本地(个人)位置(例如,$HOME/.local),则需要将其添加到您的PYTHONPATH中。

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

然后您可以进行一些基本测试。

$ flux start --test-size=4

请确保您的PYTHONPATH在此处正确,并导入flux。

$ ipython
import flux
flux.Flux()

开发

我们提供了一个可以在VSCode中打开的.devcontainer环境,该环境包含Flux(和Flux Security)的现成环境。您可以按照DevContainer中的说明构建Flux Python绑定。默认情况下,此环境安装最新的flux-core。如果您想使用Flux core构建自定义版本,可以这样做

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

然后将Python源代码复制到“flux”,并构建您的自定义存档和/或wheel

$ 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

您可以构建3.6到3.10之间的Python wheel版本,如下所示

# 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

如果您想上传

$ twine upload dist/*.tar.gz

自动化

为了(最终)支持检查发布、获取发布资产和构建的工作流程,我们有一个工作流程脚本,该脚本将

  • 获取最新的Flux发布版本
  • 与最新的PyPI发布版本进行比较
  • 如果Flux在GitHub上的新发布版本不在PyPI上,则构建和发布

此脚本还可以接受可选的版本字符串,该字符串将找到并显式构建版本。您可能(为了测试)会这样做

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

这基本上检查是否应该进行构建。它将使用此处提供的容器安装一个构建发布的自定义版本flux core。

发布

SPDX-License-Identifier: LGPL-3.0

LLNL-CODE-764420

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

flux_python-0.65.0.tar.gz (239.0 kB 查看哈希值)

上传时间

构建版本

flux_python-0.65.0-0-cp310-cp310-any.whl (674.1 kB 查看哈希值)

上传时间 CPython 3.10

flux_python-0.65.0-0-cp39-cp39-any.whl (413.8 kB 查看哈希值)

上传时间 CPython 3.9

flux_python-0.65.0-0-cp38-cp38-any.whl (413.8 kB 查看哈希值)

上传时间 CPython 3.8

flux_python-0.65.0-0-cp37-cp37m-any.whl (938.4 kB 查看哈希值)

上传时间 CPython 3.7m

flux_python-0.65.0-0-cp36-cp36m-any.whl (938.4 kB 查看哈希值)

上传时间 CPython 3.6m

由以下支持