Из-за того, что gdal
и proj
(он же proj4
) доступен только в Alpine Edge (репозиторий «testing»), я заблокирован для этой ветви.
Модуль Python gdal
(не упомянутая выше библиотека) не компилируется в Alpine Edge при использовании Python 3, поэтому это блокирует меня для использования 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]
Пакеты numpy и matplotlib существуют для Python 2 в ветви 3.10.
Есть ли способ, которым я могу использовать / установитьих в ветке 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 && \
...