Установите py [2] -numpy в Alpine Edge (Alpine 3.10 является текущим и имеет py [2] -numpy) - PullRequest
0 голосов
/ 20 сентября 2019

Из-за того, что 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 && \
...
...