docker-安装模块后出现ModuleNotFoundError

时间:2020-07-08 06:55:50

标签: python docker ubuntu pythonocc

我正在Docker中安装没有conda环境的pythonocc。

显示“ Installing: /usr/lib/python3/dist-packages/OCC/Wrapper/__init__.py”后,表明我已在/usr/lib/python3/dist-packages中成功安装了OCC模块。在运行PythonOCC示例测试时,它仍然出错:

Traceback (most recent call last):
  File "core_wrapper_features_unittest.py", line 27, in <module>
    from OCC.Core.Standard import Standard_Transient
ModuleNotFoundError: No module named 'OCC'

在安装PythonOCC之前,我已经安装了依赖项。以下是Dockerfile:
FROM python:3.6

RUN export PYTHONPATH=/usr/lib/python3/dist-packages:$PYTHONPATH

COPY . .

RUN python show_sys_path.py

RUN pip install -r requirements.txt


ENV DEBIAN_FRONTEND=noninteractive

RUN wget http://195.123.239.146/downloads2/2020-07-04-12-57-42-prdownloads.sourceforge.net-tcl8.6.10-src.tar.gz 
RUN tar -zxvf 2020-07-04-12-57-42-prdownloads.sourceforge.net-tcl8.6.10-src.tar.gz -C /

RUN cd /tcl8.6.10

RUN /tcl8.6.10/unix/configure --enable-gcc  --enable-shared --enable-threads --prefix=/usr/local

RUN make -j$(nproc)

RUN make install


##############
# apt update #
##############
RUN apt-get update

RUN apt-get install -y wget git build-essential libgl1-mesa-dev libfreetype6-dev libglu1-mesa-dev libzmq3-dev libsqlite3-dev libicu-dev python3-dev libgl2ps-dev libfreeimage-dev libtbb-dev ninja-build bison autotools-dev automake libpcre3 libpcre3-dev libxmu-dev libxi-dev libopenblas-dev libboost-all-dev swig libxml2-dev

RUN dpkg-reconfigure --frontend noninteractive tzdata



################
# CMake 3.15.5 #
################
WORKDIR /opt/build
RUN wget https://github.com/Kitware/CMake/releases/download/v3.15.5/cmake-3.15.5.tar.gz
RUN tar -zxvf cmake-3.15.5.tar.gz
WORKDIR /opt/build/cmake-3.15.5
RUN ./bootstrap && make -j3 && make install

############################################################
# OCCT 7.4.0                                               #
# Download the official source package from OCE repository #
############################################################
WORKDIR /opt/build
RUN wget https://github.com/tpaviot/oce/releases/download/official-upstream-packages/opencascade-7.4.0.tgz
RUN tar -zxvf opencascade-7.4.0.tgz >> installed_occt740_files.txt
RUN mkdir opencascade-7.4.0/build
WORKDIR /opt/build/opencascade-7.4.0/build

RUN ls /usr/include
RUN cmake -G Ninja \
 -DINSTALL_DIR=/opt/build/occt740 \
 -DBUILD_RELEASE_DISABLE_EXCEPTIONS=OFF \
 ..

RUN ninja install

RUN echo "/opt/build/occt740/lib" >> /etc/ld.so.conf.d/occt.conf
RUN ldconfig

RUN ls /opt/build/occt740
RUN ls /opt/build/occt740/lib

#############
# pythonocc #
#############
WORKDIR /opt/build
RUN git clone https://github.com/tpaviot/pythonocc-core
WORKDIR /opt/build/pythonocc-core
RUN git checkout 7.4.0
WORKDIR /opt/build/pythonocc-core/build

RUN cmake -G Ninja \
 -DOCE_INCLUDE_PATH=/opt/build/occt740/include/opencascade \
 -DOCE_LIB_PATH=/opt/build/occt740/lib \
 -DPYTHONOCC_BUILD_TYPE=Release \
 ..
 
RUN ninja install

RUN export PYTHONPATH=/usr/lib/python3/dist-packages:$PYTHONPATH

############
# svgwrite #
############
RUN pip install svgwrite


#######################
# Run pythonocc tests #
#######################
WORKDIR /opt/build/pythonocc-core/test
RUN python core_wrapper_features_unittest.py

##############################
# Install pythonocc examples #
##############################
WORKDIR /opt/build/
RUN git clone https://github.com/tpaviot/pythonocc-demos
WORKDIR /opt/build/pythonocc-demos
RUN cp -r /opt/build/pythonocc-demos/assets /home/jovyan/work
RUN cp -r /opt/build/pythonocc-demos/jupyter_notebooks /home/jovyan/work

#############
# pythreejs #
#############
WORKDIR /opt/build
RUN git clone https://github.com/jovyan/pythreejs
WORKDIR /opt/build/pythreejs
RUN git checkout 2.1.1
RUN chown -R jovyan .
USER jovyan
RUN /opt/conda/bin/pip install --user -e .
WORKDIR /opt/build/pythreejs/js
RUN npm run autogen
RUN npm run build:all
USER root
RUN jupyter nbextension install --py --symlink --sys-prefix pythreejs
RUN jupyter nbextension enable pythreejs --py --sys-prefix

########
# gmsh #
########
ENV CASROOT=/opt/build/occt740
WORKDIR /opt/build
RUN git clone https://gitlab.onelab.info/gmsh/gmsh
WORKDIR /opt/build/gmsh
RUN git checkout gmsh_4_5_3
WORKDIR /opt/build/gmsh/build

RUN cmake \
 -DCMAKE_BUilD_TYPE=Release \
 -DENABLE_OCC=ON \
 -DENABLE_OCC_CAF=ON \
 -DCMAKE_INSTALL_PREFIX=/usr/local \
 ..

RUN make -j3 && make install


WORKDIR /

我认为可能是由于sys_path或PYTHONPATH导致的:

/usr/local/lib/python36.zip
/usr/local/lib/python3.6
/usr/local/lib/python3.6/lib-dynload
/usr/local/lib/python3.6/site-packages

但是我试图像'RUN export PYTHONPATH = / usr / lib / python3 / dist-packages:$ PYTHONPATH'这样编辑它,但还是徒劳。

请告诉我如何修改dockerfile来解决此问题。谢谢!

0 个答案:

没有答案