我正在尝试在Azure上部署Django Webapp。我需要的一个库依赖于Cmake,所以我得到错误:
CMake must be installed to build the following extensions: _dlib_pybind11
现在,为了在服务上安装Cmake,我需要制作一些SH文件,或者手动插入一些"startup"命令,是否有办法"预安装"?安装前要做requirements.txt吗?
UPDATE(这个有效+部署在azure上进行确认):
FROM tiangolo/uwsgi-nginx:python3.8-alpine-2020-12-19
RUN apk update
RUN apk add lapack-dev
RUN apk add gfortran musl-dev g++ freetype-dev
RUN apk add gcc clang cmake python-dev
RUN ln -s /usr/include/locale.h /usr/include/xlocale.h
RUN apk add make automake g++ subversion python3-dev
LABEL Name=ydemo Version=0.0.1
EXPOSE 8000
ENV LISTEN_PORT=8000
ENV UWSGI_INI uwsgi.ini
WORKDIR /app
ADD . /app
RUN chmod g+w /app
RUN chmod g+w /app/db.sqlite3
COPY ./requirements.txt /app/requirements.txt
RUN python3 -m pip install --upgrade pip
RUN apk add --no-cache jpeg-dev zlib-dev
RUN apk add --no-cache postgresql-dev
RUN apk add --no-cache libmemcached-dev zlib-dev
RUN apk add --no-cache --virtual .build-deps build-base linux-headers
&& pip3 install pip --upgrade
RUN python3 -m pip install Pillow
RUN python3 -m pip install setuptools wheel
RUN pip3 install --upgrade pip setuptools wheel
RUN python3 -m pip install -r requirements.txt
RUN python3 -m pip install cmake
RUN python3 -m pip install dlib
RUN python3 -m pip install numpy
RUN python3 -m pip install opencv-python
COPY . /app
这行得通:
FROM tiangolo/uwsgi-nginx:python3.8-alpine-2020-12-19
RUN apk update
RUN apk add lapack-dev
RUN apk add gfortran musl-dev g++ freetype-dev
RUN apk add gcc clang cmake python-dev
RUN ln -s /usr/include/locale.h /usr/include/xlocale.h
RUN apk add make automake g++ subversion python3-dev
LABEL Name=ydemo Version=0.0.1
EXPOSE 8000
ENV LISTEN_PORT=8000
ENV UWSGI_INI uwsgi.ini
WORKDIR /app
ADD . /app
RUN chmod g+w /app
RUN chmod g+w /app/db.sqlite3
COPY ./requirements.txt /app/requirements.txt
RUN python3 -m pip install --upgrade pip
RUN apk add --no-cache jpeg-dev zlib-dev
RUN apk add --no-cache postgresql-dev
RUN apk add --no-cache libmemcached-dev zlib-dev
RUN apk add --no-cache --virtual .build-deps build-base linux-headers
&& pip3 install pip --upgrade
RUN python3 -m pip install Pillow
RUN python3 -m pip install setuptools wheel
RUN pip3 install --upgrade pip setuptools wheel
RUN python3 -m pip install -r requirements.txt
RUN python3 -m pip install cmake
RUN python3 -m pip install dlib
RUN python3 -m pip install numpy
RUN python3 -m pip install opencv-python
COPY . /app
我们需要运行cmdpip install cmake
,然后运行pip install dlib
。如果您正在使用conda,请遵循下面的命令sudo apt-get install build-essential cmake
。_dlib_pybind11
这是告诉你CMake没有安装,或者,你必须使用Visual Studio在windows上构建一个python扩展。
我们可以参考这个文档和票据了解更多细节