1

我正在尝试从我正在制作的 Rust Crate 制作 Python 包。问题是我需要安装在系统中的RGSL crate libgsl0-dev

我正在尝试使用Maturin 发布,它使用 Manylinux Docker 映像为 Linux 构建一切。问题是图像没有libgsl0-dev安装,所以我做了一个自定义图像添加一行:

FROM konstin2/maturin

# To solve problems with CentOS 6 EOL 
RUN echo "https://vault.centos.org/6.10/os/x86_64/" > /var/cache/yum/x86_64/6/base/mirrorlist.txt
RUN echo "http://vault.centos.org/6.10/extras/x86_64/" > /var/cache/yum/x86_64/6/extras/mirrorlist.txt
RUN echo "http://vault.centos.org/6.10/updates/x86_64/" > /var/cache/yum/x86_64/6/updates/mirrorlist.txt
RUN echo "http://vault.centos.org/6.10/sclo/x86_64/rh" > /var/cache/yum/x86_64/6/centos-sclo-rh/mirrorlist.txt
RUN echo "http://vault.centos.org/6.10/sclo/x86_64/sclo" > /var/cache/yum/x86_64/6/centos-sclo-sclo/mirrorlist.txt

# Installs needed library
RUN yum install -y libgsl0-dev

ENTRYPOINT ["/usr/bin/maturin"]

但是当我尝试构建时:

docker run --rm -v $(pwd):/io custom-image build --cargo-extra-args="--no-default-features"

⚠ 警告:您正在构建库而没有激活 pyo3 的 extension-module功能。请参阅 https://pyo3.rs/v0.12.4/building_and_distribution.html#linking 找到 pyo3 绑定 在 python3.6 找到 CPython 3.6m,在 python3.7 找到 CPython 3.7m,在 python3.8 找到 CPython 3.8,在 python3 找到 CPython 3.9。 9
编译 pyo3 v0.12.4 错误:找不到本机静态库 python3.6m,可能缺少 -L 标志

我在这里缺少什么?任何形式的帮助将非常感激

4

1 回答 1

0

正如用户在这个问题中指出的那样,安装的 GSL 版本存在问题:我使用的是在库的最后一个版本中添加的函数。此外,我必须使用该命令wheel-repair来包含一些丢失的.so文件。整个流程都在本期

于 2021-01-15T01:19:01.367 回答