Saturnian
Saturnian

Reputation: 1948

Why does pyarrow installation fail with cython not found when cython is included in requirements.txt?

So, I have a docker file in which one of the instructions is :

RUN pip3 install -r requirements.txt

And in my requirements.txt:

...
uwsgi==2.0.19.1
cython==0.29
dependency-injector==4.37.0
pyyaml==6.0
apscheduler==3.7.0
pyarrow==5.0.0
...

When I run the docker build, I see that Cython is installed but pyarrow still fails. I found this link - https://github.com/apache/arrow/issues/2163 - which mentions that cmake & cython are required and I added that in my requirements.txt but it still does not help. Do I have to add additional statements in my Dockerfile to install cython?

Output from Dockerfile build:

Collecting cython==0.29 (from -r requirements.txt (line 8))
  Downloading https://files.pythonhosted.org/packages/64/3f/cac281f3f019b825bbc03fa8cb7eb03d9c355f4aa9eef978279a4966cb21/Cython-0.29-cp36-cp36m-manylinux1_x86_64.whl (2.1MB)
...
Collecting pyarrow==5.0.0 (from -r requirements.txt (line 12))
  Downloading https://files.pythonhosted.org/packages/68/7c/0e38bfb949ededdd9b648d54cba47972835704543d7409d6f853504d0581/pyarrow-5.0.0.tar.gz (739kB)
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-395casa1/pyarrow/setup.py", line 39, in <module>
        from Cython.Distutils import build_ext as _build_ext
    ModuleNotFoundError: No module named 'Cython'

Python 3.6 installed on this base image

Upvotes: 1

Views: 1747

Answers (1)

Saturnian
Saturnian

Reputation: 1948

Ugh, this is probably one of my dumb-dumb moments but here's what worked:

RUN pip3 install --upgrade pip && pip install -r requirements.txt

and I didn't even have to specify cython in requirements.txt

Upvotes: 3

Related Questions