maturin-action 开源项目教程

maturin-action 开源项目教程

maturin-actionGitHub Action to install and run a custom maturin command with built-in support for cross compilation项目地址:https://gitcode.com/gh_mirrors/ma/maturin-action

项目介绍

maturin-action 是一个 GitHub Action,用于安装和运行自定义的 maturin 命令,并内置支持跨平台编译。maturin 是一个用于构建和发布 Python 扩展模块的工具,特别适用于使用 Rust 编写的 Python 扩展。

项目快速启动

安装和使用

  1. 克隆项目仓库

    git clone https://github.com/PyO3/maturin-action.git
    cd maturin-action
    
  2. 创建 GitHub Actions 工作流: 在项目根目录下创建 .github/workflows/ci.yml 文件,并添加以下内容:

    name: CI
    on: [push]
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
        - uses: actions/checkout@v2
        - name: Set up Python
          uses: actions/setup-python@v2
          with:
            python-version: '3.8'
        - name: Install dependencies
          run: |
            python -m pip install --upgrade pip
            pip install maturin
        - name: Build and test with maturin
          uses: PyO3/maturin-action@v1
          with:
            command: build
            args: --release
    
  3. 提交并推送更改

    git add .github/workflows/ci.yml
    git commit -m "Add GitHub Actions workflow"
    git push
    

应用案例和最佳实践

案例一:构建和发布 Python 扩展模块

假设你有一个使用 Rust 编写的 Python 扩展模块,你可以使用 maturin-action 来自动化构建和发布过程。以下是一个示例:

  1. 创建 Rust 项目

    cargo new --lib my_extension
    cd my_extension
    
  2. 添加 pyo3 依赖: 在 Cargo.toml 文件中添加以下内容:

    [lib]
    name = "my_extension"
    crate-type = ["cdylib"]
    
    [dependencies]
    pyo3 = { version = "0.14", features = ["extension-module"] }
    
  3. 编写 Rust 代码: 在 src/lib.rs 文件中添加以下内容:

    use pyo3::prelude::*;
    
    #[pyfunction]
    fn add(a: i32, b: i32) -> i32 {
        a + b
    }
    
    #[pymodule]
    fn my_extension(_py: Python, m: &PyModule) -> PyResult<()> {
        m.add_function(wrap_pyfunction!(add, m)?)?;
        Ok(())
    }
    
  4. 配置 GitHub Actions: 在 .github/workflows/ci.yml 文件中添加以下内容:

    name: CI
    on: [push]
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
        - uses: actions/checkout@v2
        - name: Set up Python
          uses: actions/setup-python@v2
          with:
            python-version: '3.8'
        - name: Install dependencies
          run: |
            python -m pip install --upgrade pip
            pip install maturin
        - name: Build and test with maturin
          uses: PyO3/maturin-action@v1
          with:
            command: build
            args: --release
    

最佳实践

  • 使用稳定的版本:始终使用最新的稳定版本 maturin-action,以确保兼容性和安全性。
  • 跨平台编译:利用 maturin-action 的内置跨平台编译支持,确保你的 Python 扩展模块可以在多种操作系统和架构上运行。
  • 自动化测试:在 GitHub Actions 工作流中添加自动化测试步骤,确保每次提交都能通过测试。

典型生态项目

PyO3

maturin-actionGitHub Action to install and run a custom maturin command with built-in support for cross compilation项目地址:https://gitcode.com/gh_mirrors/ma/maturin-action

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邹岩讳Sally

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值