Flux资源管理器API的Python绑定
项目描述
Flux Python绑定
🐍️ 你叫我吗?
你好!你找到了Flux Python绑定,这是一个实验,旨在将Flux构建并部署到PyPI,而不需要将代码与Flux存储在一起。这个实验的目的是单独测试它们。这最初是在vsoch/flux-python中开发的,并已移植到这里以更正式地执行。以下指南可能对您有所帮助
- ⭐️ Flux框架文档
- ⭐️ Flux项目
- ⭐️ 教程
- ⭐️ 在LLNL系统上安装Flux Python
辅助安装
如果您不想弄清楚Flux版本并按照手动安装中的说明使用pip目录安装,我们提供了一个辅助脚本install-flux-python.sh,它将
- 确定Flux和Python已通过pip安装
- 解析PATH上的Flux版本
- 为您推导版本并执行命令!
您首先需要确保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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a3598835603fba21d09e76183bb1e8b939350118c57f1ca3d9f67994562eaded |
|
MD5 | ccba242b34f84cc13d7c409bf7926a62 |
|
BLAKE2b-256 | 005d840a96313e073e26a943fd92860e724487d3d8b34213eee57ecd4e78d9f3 |
flux_python-0.65.0-0-cp310-cp310-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2bf2d32f585731c7a4a45d4249e87944864c48678ea448771c12588ef2e44c7f |
|
MD5 | af678495bb32bf6fc01c84ff7e6a08a3 |
|
BLAKE2b-256 | deaf69e5176e082fc652bb2733ccecaa1a46cc68e76118aeeadc6df7f975bf33 |
flux_python-0.65.0-0-cp39-cp39-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 293d9b7b3c75ac8f52a482e37d606362e8a695421d6459eaf8629c94fae7ee96 |
|
MD5 | 98d479c6c61ddb48f46cb2b93519bb04 |
|
BLAKE2b-256 | ed746d02bbd6e23cfa657e6dd0651409251565fc7a36ceefda79be49989131c9 |
flux_python-0.65.0-0-cp38-cp38-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f14dfcf9589c96ca85ec71418928a4b9842d7fcc5c903be54ae02d35d908c881 |
|
MD5 | b5d5a56b30a740ccae8e04068c90c7a8 |
|
BLAKE2b-256 | 7cb40c8d82a37bfabd11a649d7ab69aba388550d09916aad86abd478ae569c88 |
flux_python-0.65.0-0-cp37-cp37m-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f3d3014e4f6db7b66473a51b374eb6c3934e96ae361ab08c1a5cec2ed85eabe5 |
|
MD5 | 93f236dfc886a3a4fb2336618a390796 |
|
BLAKE2b-256 | 6a33dfa7a73b1d4af1a2aad86ae324dd9d8d64946254b4a1f858a221c5c71648 |
flux_python-0.65.0-0-cp36-cp36m-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f7bc9a6d1ad36ce06f5418208c76930c254a813816f7d93c6ba4adcd16cb7285 |
|
MD5 | 7a2b1e26499b3aa2f4818097490c7cc3 |
|
BLAKE2b-256 | bea9e1408f99a5bc11aeb070a2497654e18d6a086952527a422454b192801758 |