安装 python shapely 时出现 Alpine 错误

2024-02-14

我需要安装Shapely进入基于Python+Alpine的docker容器。我容器内已有的内容:

make, gcc, geos-dev, musl-dev

我用这个命令得到了什么:pip 安装匀称

Collecting shapely
  Downloading https://files.pythonhosted.org/packages/a2/fb/7a7af9ef7a35d16fa23b127abee272cfc483ca89029b73e92e93cdf36e6b/Shapely-1.6.4.post2.tar.gz (225kB)
     |████████████████████████████████| 235kB 641kB/s 
    ERROR: Command errored out with exit status 1:
     command: /usr/local/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-vj51jvsy/shapely/setup.py'"'"'; __file__='"'"'/tmp/pip-install-vj51jvsy/shapely/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-vj51jvsy/shapely/pip-egg-info
         cwd: /tmp/pip-install-vj51jvsy/shapely/
    Complete output (11 lines):
    Failed `CDLL(libgeos_c.so.1)`
    Failed `CDLL(libgeos_c.so)`
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-vj51jvsy/shapely/setup.py", line 80, in <module>
        from shapely._buildcfg import geos_version_string, geos_version, \
      File "/tmp/pip-install-vj51jvsy/shapely/shapely/_buildcfg.py", line 167, in <module>
        fallbacks=['libgeos_c.so.1', 'libgeos_c.so'])
      File "/tmp/pip-install-vj51jvsy/shapely/shapely/_buildcfg.py", line 161, in load_dll
        libname, fallbacks or []))
    OSError: Could not find library geos_c or load any of its variants ['libgeos_c.so.1', 'libgeos_c.so']
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

我用谷歌搜索了很多时间但找不到任何解决方案。

Dockerfile

FROM python:3.7-alpine

RUN ["mkdir", "/home/test"]
WORKDIR /home/test

RUN echo "http://mirror.leaseweb.com/alpine/edge/testing" >> /etc/apk/repositories
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
RUN ["apk", "add", "make", "gcc", "geos-dev", "musl-dev"]
RUN ["pip3", "install", "virtualenv", "--no-warn-script-location", "--disable-pip-version-check"]
RUN ["virtualenv", ".env", "--python=python3"]
RUN ["pip3", "install", "shapely"]

CMD ["/bin/sh"]

容器内的Python版本

/home/test # /usr/local/bin/python
Python 3.7.5 (default, Oct 21 2019, 20:13:45) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

地球观测系统版本

/home/test # geos-config --version
3.7.2

UPDATED

现在您必须将此存储库放在其他存储库下面:

--repository http://dl-cdn.alpinelinux.org/alpine/edge/community

这会起作用:

FROM python:3.7-alpine

RUN ["mkdir", "/home/test"]
WORKDIR /home/test

RUN echo "http://mirror.leaseweb.com/alpine/edge/community" >> /etc/apk/repositories
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
RUN apk add --virtual .build-deps \
        --repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
        --repository http://dl-cdn.alpinelinux.org/alpine/edge/main \
        gcc libc-dev geos-dev geos && \
    runDeps="$(scanelf --needed --nobanner --recursive /usr/local \
    | awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \
    | xargs -r apk info --installed \
    | sort -u)" && \
    apk add --virtual .rundeps $runDeps
RUN ["pip", "install", "shapely"]

CMD ["/bin/sh"]

see this https://serverfault.com/questions/947044/installing-shapely-on-alpine-docker

UPDATE: 根据评论,geos-dev已移至community repo.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安装 python shapely 时出现 Alpine 错误 的相关文章

随机推荐

  • 反应未定义

    我刚刚开始玩反应宝石 https github com reactjs react rails但我似乎遇到了问题 使用下面的代码 每当我路由到 React 示例页面时 我注意到浏览器开发人员控制台中会显示 React 未定义 它指的是这一行
  • 终止信号示例

    我正在尝试这个例子 http www cs cf ac uk Dave C node24 html http www cs cf ac uk Dave C node24 html include
  • 检测目标 CPU 上的对齐内存要求

    我目前正在尝试构建一个可以在多种机器上运行的代码 从手持口袋和传感器到数据中心的大型服务器 这些架构之间的 许多 差异之一是对齐内存访问的要求 标准 x86 CPU 不需要对齐内存访问 但许多其他 CPU 需要它 如果不遵守规则 就会产生异
  • 如何清理未使用的Azure资源

    我的任务是清理 Azure 订阅中未使用的资源 总共有600多种资源 我更喜欢通过脚本 power shell 来执行此操作 因为我必须在多个订阅中重复此活动 首先也许我可以 gt 获取上次更新 活动时间 查看列表 gt 删除资源 有人已经
  • 为什么任何长度的密钥都适用于 RijndaelManaged?

    关于方法 RijndaelManaged CreateDecryptor Method Byte Byte Here https msdn microsoft com en us library 2f5ff61x v vs 110 aspx
  • 从 ArrayRef[HashRef] 强制 ArrayRef[MyClass]

    在试图回答的过程中如何从大哈希实例化 Moose 类 https stackoverflow com q 12483775 468327 我想我又遇到了一个我不完全理解 Moose 类型强制的地方 由于某种原因 以下代码发出警告 You c
  • Facebook Graph 受众洞察查询

    我在这里发现了一些有趣的 Facebook Graph API 文档 https developers facebook com docs graph api reference audience insights query https
  • 从文件读取时的 java.net.URL 缓存

    看起来 java 正在对 URL 和文件 进行某种缓存 例如 我的类路径中的 jar 文件中有一个文件 resources txt 该文件的内容是 版本1 new java io BufferedReader new java io Inp
  • 将 IPython 控制台与 IPython 笔记本一起使用

    While working on an IPython notebook I m increasingly finding myself wishing that the notebook would have a console atta
  • Java 7u40 Java SE 8 sun.reflect.Reflection.getCallerClass [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我已阅读以下帖子 Oracle 停止 sun reflect Reflection getCallerClass http www info
  • 核心数据:管理对象和实体之间的区别?

    我想了解更多核心数据 为什么我们要 获取 并搜索实体 而实体位于 内部 托管对象 例如 NSManagedObjectContext moc self managedObjectContext NSEntityDescription ent
  • Bokeh Interactive 图例隐藏多个字形

    我已为我的数据集启用隐藏图例选项 当我点击它时 只有一个条消失 其他条保留 我不太确定是什么导致了这个问题 这是之前和之后的条形图 我的数据如下所示 这是代码 p Bar output Programs values Averages gr
  • 找到文件中最小的浮点数,然后打印它及其上面的行

    我的数据文件如下所示 3 6 band 6238 Over 0 5678 Over 0 6874 Over 0 7680 Over 0 7834 我想要做的是选出最小的浮点数和它正上方的单词并打印这两个值 我不知道我在做什么 我试过了 df
  • 如何在没有迭代器的情况下迭代 Set/HashSet?

    我如何迭代Set HashSet没有以下内容 Iterator iter set iterator while iter hasNext System out println iter next 您可以使用增强的for循环 http doc
  • PDO:获取结果时去除斜杠

    我正在使用 PDO 准备好的语句 因此在插入数据库之前需要时会添加斜杠 我想知道获取结果并将其显示在网站上而不显示斜杠的正确方法 是不是就像使用一样简单echo stripslashes result gt message 这是我的查询的样
  • 有没有比使用 jQuery 的each 更好的方法来搜索 JavaScript 数组?

    我经常需要搜索包含对象的 javascript 数组 我想在数组中搜索具有属性匹配的对象 例如 在 Person 对象数组中搜索人员的 id key ABC123 使用 jQuery 使用 each 方法可以非常轻松地完成此操作 这就是我所
  • 带有 null 测试的 NHibernate JoinAlias 查询不起作用

    我在 NHibernate 中使用 JoinAlias QueryOver 时遇到了一些意外行为 我的实体本质上是这样的 public class Field public virtual long Id get protected set
  • 将样式表链接到 Django 模板

    我一直在看本教程 https docs djangoproject com en 1 5 intro tutorial06 现在有一个样式表 静态 样式 问题是模板没有接受这个 我的设置文件中需要一些东西吗 我哪里错了 我的项目结构是 pr
  • BackgroundSubtractorMOG2参数

    我无法理解所有参数背景减法器mog2 http docs opencv org modules video doc motion analysis and object tracking html backgroundsubtractorm
  • 安装 python shapely 时出现 Alpine 错误

    我需要安装Shapely进入基于Python Alpine的docker容器 我容器内已有的内容 make gcc geos dev musl dev 我用这个命令得到了什么 pip 安装匀称 Collecting shapely Down