python - 在 Alpine Edge 中安装 py[2]-numpy(Alpine 3.10 是最新的并且具有 py[2]-numpy)
问题描述
由于gdal
and proj
(aka proj4
) 仅在 Alpine Edge (“测试”存储库)中可用,我被锁定到该分支。
使用 Python 3 时, Python 模块gdal
(不是上面提到的库)不能在 Alpine Edge 上编译,所以这使我无法使用 Python 2。
我收到很多错误,例如
extensions/gdal_wrap.cpp: In function 'CPLErr GDALDatasetShadow_SetGCPs2(GDALDatasetShadow*, int, const GDAL_GCP*, OSRSpatialReferenceShadow*)':
extensions/gdal_wrap.cpp:4735:12: error: 'GDALSetGCPs2' was not declared in this scope; did you mean 'GDALSetGCPs'?
4735 | return GDALSetGCPs2( self, nGCPs, pGCPs, (OGRSpatialReferenceH)hSRS );
| ^~~~~~~~~~~~
| GDALSetGCPs
extensions/gdal_wrap.cpp: In function 'PyObject* _wrap_EscapeString(PyObject*, PyObject*, PyObject*)':
extensions/gdal_wrap.cpp:7850:63: warning: 'int PyObject_AsReadBuffer(PyObject*, const void**, Py_ssize_t*)' is deprecated [-Wdeprecated-declarations]
7850 | int res = PyObject_AsReadBuffer(obj0, &safeBuf, &safeLen);
| ^
In file included from /usr/include/python3.7m/Python.h:147,
from extensions/gdal_wrap.cpp:173:
/usr/include/python3.7m/abstract.h:489:17: note: declared here
489 | PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
| ^~~~~~~~~~~~~~~~~~~~~
我认为这是由于这个 Python 版本不匹配造成的。
我需要使用py-numpy
( py2-numpy
) +-dev
包以及py2-matplotlib
,但这些在 Edge 分支存储库中不可用。那个只有那些为 Python 3 预编译的包。
OK: ---> Running in a83422b2e066
OK: fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
OK: fetch http://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
OK: fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
OK: ERROR: unsatisfiable constraints:
OK: py-numpy (missing):
required by: world[py-numpy]
py-numpy-dev (missing):
required by: world[py-numpy-dev]
py2-matplotlib (missing):
required by: world[py2-matplotlib]
Python 2 的 3.10 分支中存在 numpy 和 matplotlib 包。
有没有办法可以在 Edge 分支中使用/安装它们?
这是我的 Dockerfile 的相关部分
RUN apk --update --no-cache add --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing \
build-base \
gdal \
gdal-dev \
proj \
proj-dev \
python2 \
python2-dev \
py-numpy \
py-numpy-dev \
py2-pillow \
py2-matplotlib \
py2-pip && \
\
pip install --upgrade pip && \
pip install --upgrade subprocess32 cycler gdal arrow && \
...
解决方案
推荐阅读
- c# - 从 C# 读取 Tibco EMS 消息队列需要哪些属性
- r - R:预测函数结果因版本而异,响应超出范围(0-1)
- download - Xamarin.Mac 7.2.0.3 (Mac) 的链接
- php - Laravel - Spatie 多租户 - 让表格遵守租户数据库
- python - 如何使用 websocket python-binance 获取未结订单?
- python - Python多处理 - 在线程之间使用共享变量和管理器?
- python - 如何提取字符串的一部分,从一个单词到另一个单词?
- swift - 如何解决这个闭包完成处理程序问题?
- python - 将表单中的数据保存到 2 个模型中
- c# - JSON.net TypeNameHandling : 自定义 Auto