【发布时间】:2020-12-07 16:56:43
【问题描述】:
我正在尝试从我正在制作的 Rust Crate 制作 Python 包。问题是我需要RGSL crate,它需要在系统中安装libgsl0-dev。
我正在尝试使用Maturin which uses 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,CPython 3.7m 在 python3.7,CPython 3.8 在 python3.8,CPython 3.9 在 python3.9
编译pyo3 v0.12.4报错:找不到本机静态库python3.6m,可能缺少 -L 标志
我在这里缺少什么?任何形式的帮助将不胜感激
【问题讨论】:
-
尝试将
py03 = { version = "whatever your using", features = ["extension-module"]}添加到您的 Cargo.toml。我现在无法重新创建此错误,但这是我认为错误消息告诉您执行的操作。另外,请尝试再次查看 py03 自述文件,看看是否遗漏了什么。 -
感谢您的评论!不幸的是它没有解决错误。与 manylinux 兼容似乎是一个问题,一些库可用于所有发行版,GSL 不是其中之一。我已经打开 an issue 要求这个