Renku平台的Python SDK和CLI。
项目描述
一个用于Renku协作数据科学平台的Python库。它包括面向最终用户的CLI和SDK以及服务后端。它提供创建和管理项目及数据集的功能,以及在执行分析任务时捕获数据来源的简单实用工具。
- 注意:
renku-python 是 Renku 的 Python 库和核心服务 - 它 不会 启动 Renku 平台本身 - 关于如何启动平台,请参阅 Renku 文档中的 运行平台 部分。
Renku 用户指南
安装
Renku 的发布版本和开发版本可以从 PyPI 获取。您可以使用任何能够处理 PyPI 包的工具进行安装。我们的建议是使用 :code:pipx。
先决条件
Renku 在内部依赖于 Git,因此请确保您已经在您的系统上安装了 Git 安装 Git。
Renku 还提供对存储在 Git LFS 中的大文件的支持,默认情况下使用 Git LFS,并且应在您的系统上安装。如果您不想使用 Git LFS,可以在运行 Renku 命令时使用 -S 标志,例如 renku -S <command>。有关在 renku 中使用 Git LFS 的更多信息,请参阅文档中的 数据 部分。
当调用 renku update 或 renku rerun 时,Renku 使用 CWL 来执行记录的工作流程。CWL 依赖于 NodeJs 来执行工作流程,因此如果您想使用这些功能,则需要安装 NodeJs。
对于服务的开发,建议使用 Docker。
pipx
首先,安装 pipx 并确保 $PATH 配置正确。
$ python3 -m pip install --user pipx $ python3 -m pipx ensurepath
安装 pipx 后,使用以下命令安装 renku。
$ pipx install renku $ which renku ~/.local/bin/renku
pipx 将 Renku 安装到其自己的虚拟环境中,确保它不会污染您可能已经安装的其他包或版本。
安装开发版本
$ pipx install --pip-args pre renku
pip
$ pip install renku
最新的开发版本可在 PyPI 或 Git 存储库中找到
$ pip install --pre renku # - OR - $ pip install -e git+https://github.com/SwissDataScienceCenter/renku-python.git#egg=renku
如果您想使用命令行界面,并且不需要可导入的 Python 库,请根据您的操作系统和偏好使用以下安装步骤。
Windows
可以使用 Windows Subsystem for Linux (WSL) 运行 Renku。要安装 WSL,请按照 官方说明 进行。
我们建议您在安装步骤到达那里时使用 Ubuntu 20.04 映像。
一旦安装了 WSL,启动 WSL 终端,并使用以下命令安装 Renku 所需的软件包
$ sudo apt-get update && sudo apt-get install git python3 python3-pip python3-venv pipx
由于 Ubuntu 默认安装了一个较旧的 Git LFS 版本,在克隆存储库时已知的某些错误,我们建议您按照以下 说明 手动安装最新版本。
一旦安装了所有要求,您可以通过运行以下命令来正常安装 Renku
$ pipx install renku $ pipx ensurepath
在此之后,Renku 即可使用。您可以在 /mnt/ 的各个挂载点访问 Windows 系统,并且可以像往常一样直接从 WSL 执行 Windows 可执行程序(例如 \*.exe)。所以 renku run myexecutable.exe 将按预期工作。
Docker
可以使用 Docker 命令启动 CLI 的容器化版本。
$ docker run -it -v "$PWD":"$PWD" -w="$PWD" renku/renku-python renku
它确保您的当前目录挂载到容器中的相同位置。
CLI 示例
初始化 Renku 项目
$ mkdir -p ~/temp/my-renku-project $ cd ~/temp/my-renku-project $ renku init
创建数据集并向其中添加数据
$ renku dataset create my-dataset $ renku dataset add my-dataset https://raw.githubusercontent.com/SwissDataScienceCenter/renku-python/master/README.rst
运行分析
$ renku run --name my-workflow -- wc < data/my-dataset/README.rst > wc_readme
追踪数据来源
$ renku workflow visualize wc_readme
这些都是基础知识,但 Renku 允许您在数据分析工作流程中做更多的事情。完整的文档将很快在以下地址提供:[https://renku-python.readthedocs.io/](https://renku-python.readthedocs.io/)
作为服务的 Renku
此存储库包含一个作为 Flask 应用程序编写的 renku-core RPC 服务,它提供了 Renku CLI 的几乎所有功能。这用于提供 RenkuLab 网页用户界面的后端之一。该服务可以作为 Helm 图表(见 helm-chart)在生产环境中部署。
本地部署
要测试服务功能,您可以使用 docker-compose up [docker-compose](https://pypi.ac.cn/project/docker-compose/)快速轻松地部署它。请确保复制 renku/service/.env-example 文件并配置到您的需求。这里的设置是使用 traefik 反向代理在背后公开服务,以模拟实际的生产部署。您可以通过 http://localhost/api 访问代理端点。服务本身在端口 8080 上公开,因此其端点可以直接在 http://localhost:8080 下访问。
API 文档
renku 核心服务实现了 API 文档作为 OpenAPI 3.0.x 规范。您可以使用以下命令检索规范的 yaml:
` $ renku service apispec `
如果使用 docker-compose 在本地部署服务,您可以在 localhost/api/swagger 下找到 swagger-UI。要向服务端点发送正确的授权头,请点击 Authorize 按钮,并输入有效的 JWT 令牌和一个具有读写仓库范围的 gitlab 令牌。JWT 令牌可以通过使用 renku login 登录 renku 实例并从您的本地 renku 配置中检索到。
在实时部署中,swagger 文档可在 https://<renku-endpoint>/swagger 下获得。您可以通过首先正常登录 renku,然后转到 swagger 页面,点击 Authorize 并选择 oidc (OAuth2, authorization_code) 选项来授权 API。将 client_id 保留为 swagger 并将 client_secret 留空,选择所有范围并点击 Authorize。您现在应该已经登录,并且可以使用各个请求上的 Try it out 按钮发送请求。
开发 Renku
为了从源测试功能,您可以方便地使用 pipx 以可编辑模式安装 renku。克隆存储库,然后执行以下操作:
$ pipx install \ --editable \ <path-to-renku-python>[all] \ renku
这将安装所有测试和调试的额外功能。
如果您已经使用pyenv来管理不同的Python版本,您可能会对安装pyenv-virtualenv以创建用于开发renku的临时虚拟环境感兴趣。
一旦您为renku-python创建并激活了虚拟环境,您就可以使用常规的pip命令来安装所需的依赖项。
$ pip install -e .[all] # use `.[all]` for zsh
服务
可以使用docker compose(见上面的“本地部署”)来开发服务和测试其API。
如果您有可用的完整RenkuLab部署,您可以使用telepresence v1在本地开发和调试。只需运行start-telepresence.sh脚本并按照说明操作。请注意,该脚本不适用于telepresence v2。
运行测试
我们使用pytest来运行测试。您可以使用我们的run-tests.sh脚本来运行特定的一组测试。
$ ./run-tests.sh -h
使用外部调试器
本地机器
要使用例如Visual Studio Code调试器运行renku,您需要通过用于安装renku的任何虚拟环境中的python可执行文件运行它。如果需要调试器包,您需要先将其注入到虚拟环境中,例如。
$ pipx inject renku ptvsd
最后,通过调试器运行renku
$ ~/.local/pipx/venvs/renku/bin/python -m ptvsd --host localhost --wait -m renku.ui.cli <command>
如果您使用Visual Studio Code,您可能还想设置Remote Attach配置PathMappings,以便它可以找到您的源代码,例如。
{ "name": "Python: Remote Attach", "type": "python", "request": "attach", "port": 5678, "host": "localhost", "pathMappings": [ { "localRoot": "<path-to-renku-python-source-code>", "remoteRoot": "<path-to-renku-python-source-code>" } ] }
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源代码发行版
构建分发版
renku-2.9.4.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7fe8047a544ebb3a63d2f7b5f2acc082ec7bf1ac785faa7fe6454dda9713334c |
|
MD5 | 7e6cb22c061fb9cb51d45470c4d64728 |
|
BLAKE2b-256 | 38bab751d379c40e53098a902ca12032fe3a1b7a810b6b677f227ead6e0fdfc3 |
renku-2.9.4-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e4d99c69748cae07601ccd4db763df80f7c3572a5b14901491d29435b9b57df0 |
|
MD5 | 5a8b0b1d1e6e9b2ac809a75f7c42eeed |
|
BLAKE2b-256 | 4f136d3a8f25fe97cb7cc579416fa03721077c75f37ce372088365d7c8196ab8 |