web-dev-qa-db-ja.com

Dockerにpython3でCythonをインストールする

tensorflowのDockerイメージをpython3とともに使用しています:

FROM tensorflow/tensorflow:latest-gpu-py3

サードパーティのライブラリが存在するためにはCythonが必要なので、そうします

RUN curl -O https://bootstrap.pypa.io/get-pip.py && \
    python get-pip.py && \
    rm get-pip.py

RUN \ 
    pip install --no-cache-dir Cython

問題は、その後Cythonからはpythonを表示できますが、python3からは表示できないことです。

root@fdb5bb783cf9:/darkflow# python3 -c "import Cython; print(Cython.__version__)"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named 'Cython'
root@fdb5bb783cf9:/darkflow# python -c "import Cython; print(Cython.__version__)"
0.25.2
3
loretoparisi

解決策は、pip3を使用してCython installを実行することと、python3を使用してライブラリのsetup.pyを実行することです。

RUN apt-get update && apt-get install -y \
    python3-pip

そして

RUN \ 
    pip3 install --no-cache-dir Cython

そしてライブラリ層

RUN \
    cd lib && \
    python3 setup.py

最後のものは、pip3 install .を使用してpip3を使用してグローバルにインストールすることができます。

今回は

RUN python3 -c "import Cython; print(Cython.__version__)"

そこにCythonありました:0.25.2

1
loretoparisi