Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot install pandas requirement on CKAN 2.9.5 #195

Open
rbcb-bedag opened this issue Feb 25, 2022 · 0 comments
Open

Cannot install pandas requirement on CKAN 2.9.5 #195

rbcb-bedag opened this issue Feb 25, 2022 · 0 comments

Comments

@rbcb-bedag
Copy link

We are using CKAN 2.9.5 which uses Python 3.8.10. The base docker-image is from keitaroinc.

We are doing a multi-stage build, where in the first stage a Ubuntu 20.04 is used from keitaroinc.
When pandas is getting installed (version in requirements.txt is pandas==0.24.2), it doesn't find any pre-built wheel for Python 3.8.10 and therefore a version gets build locally. This is a slow build and after some time following error occures :

         17 | #warning "Using deprecated NumPy API, disable it with " \
            |  ^~~~~~~
      pandas/_libs/src/ujson/python/objToJSON.c: In function â??initObjToJSONâ??:
      pandas/_libs/src/ujson/python/objToJSON.c:194:12: error: â??NUMPY_IMPORT_ARRAY_RETVALâ?? undeclared (first use in this function)
        194 |     return NUMPY_IMPORT_ARRAY_RETVAL;
            |            ^~~~~~~~~~~~~~~~~~~~~~~~~
      pandas/_libs/src/ujson/python/objToJSON.c:194:12: note: each undeclared identifier is reported only once for each function it app
ears in
      pandas/_libs/src/ujson/python/objToJSON.c:195:1: warning: control reaches end of non-void function [-Wreturn-type]
        195 | }
            | ^
      error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pandas

It cannot build pandas : error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1

We would like to test this extension on a newer version of ckan 2.9+ out.
Would it be possible, that you can upgrade the pandas dependency, so that a pandas will be used, where allready a pre-built wheel exists ? (in the hopes that not building it locally this would solve the problem).

P.S.
this is the dockerfile with the packages and extensions that get first installed in the first stage of the docker build :

FROM keitaro/ckan:2.9.5-focal as extbuild

USER root

RUN apt-get update && \
    apt-get -qq -y install \
    wget \
    build-essential \
    python3-dev \
    gcc \
    g++ \
    libffi-dev \
    openssl \
    libssl-dev \
    rustc \
    cargo

RUN pip install --upgrade pip
RUN pip install --upgrade setuptools

#ckanext-scheming
###
ENV SCHEMING_GIT_URL=https://github.com/ckan/ckanext-scheming.git
ENV SCHEMING_RAW_GIT_URL=https://raw.githubusercontent.com/ckan/ckanext-scheming
ENV SCHEMING_GIT_BRANCH=release-2.1.0

RUN pip wheel --wheel-dir=/wheels git+${SCHEMING_GIT_URL}@${SCHEMING_GIT_BRANCH}#egg=ckanext-scheming
#no dependencies/requirements.txt needed
###

#ckanext-fluent
###
ENV FLUENT_GIT_URL=https://github.com/ckan/ckanext-fluent.git
ENV FLUENT_RAW_GIT_URL=https://raw.githubusercontent.com/ckan/ckanext-fluent
ENV FLUENT_GIT_BRANCH=c735d32eddb34be7fae3177e181d9938d7fc303d

RUN pip wheel --wheel-dir=/wheels git+${FLUENT_GIT_URL}@${FLUENT_GIT_BRANCH}#egg=ckanext-fluent
RUN pip wheel --wheel-dir=/wheels -r ${FLUENT_RAW_GIT_URL}/${FLUENT_GIT_BRANCH}/requirements.txt
RUN curl -o /wheels/fluent.txt ${FLUENT_RAW_GIT_URL}/${FLUENT_GIT_BRANCH}/requirements.txt
###

#ckanext-switzerland
#https://github.com/opendata-swiss/ckanext-switzerland-ng/tree/8ba558d19a74b0029af5cd8bb02bbbeddb5a586a
ENV SWITZERLAND_GIT_URL=https://github.com/opendata-swiss/ckanext-switzerland-ng.git
ENV SWITZERLAND_RAW_GIT_URL=https://raw.githubusercontent.com/opendata-swiss/ckanext-switzerland-ng
ENV SWITZERLAND_GIT_BRANCH=8ba558d19a74b0029af5cd8bb02bbbeddb5a586a

##### => build crashes here on installing switzerland extensions on installing/building pandas
RUN pip wheel --wheel-dir=/wheels git+${SWITZERLAND_GIT_URL}@${SWITZERLAND_GIT_BRANCH}#egg=ckanext-switzerland
RUN pip wheel --wheel-dir=/wheels -r ${SWITZERLAND_RAW_GIT_URL}/${SWITZERLAND_GIT_BRANCH}/requirements.txt
RUN curl -o /wheels/switzerland.txt ${SWITZERLAND_RAW_GIT_URL}/${SWITZERLAND_GIT_BRANCH}/requirements.txt
####

USER ckan

....
#second stage of docker build 
#copy over build wheels and install them
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant