使用dockerfi在virtualenv中安装Django时出错

2024-09-26 22:54:26 发布

您现在位置:Python中文网/ 问答频道 /正文

FROM webdevops/base:ubuntu-16.04

RUN apt-get update && apt-get -y upgrade && apt-get install -y --no-install-  recommends \ 
    apache2 \
    openssh-client \
    python3 \
    python3-dev \
    python3-venv \
    python3-psycopg2 \
    python3-pip \
    pyflakes3 \
    pylint3 \
    pep8 \
    pep257 \
    postgresql-client \
    libapache2-mod-wsgi-py3 \
    && apt-get clean \
    && rm -fr /var/lib/apt/lists/*

RUN mkdir /var/www/html/hotels-project
RUN cd /var/www/html/hotels-project/ \
   && python3 -m venv hotels-venv \
   && /bin/bash -c "source hotels-venv/bin/activate" 

RUN pip install 'django<2.0'
RUN pip install requests
RUN pip install psycopg2

显示消息:

ERROR: Service 'apache-python' failed to build: The command '/bin/sh -c pip install 'django<2.0'' returned a non-zero code: 127


Tags: installpiprunprojectclientgetbinvenv
1条回答
网友
1楼 · 发布于 2024-09-26 22:54:26

docker文件中有两个问题。你知道吗

  • 使用pip而不是pip3
  • 在一个步骤中激活virtualenv,在另一个步骤中运行命令

在Dockerfile中,对于每个RUN步骤,您都会得到一个新的终端。因此,在前面的RUN语句中执行的任何source命令都不再有效。你知道吗

所以你的代码应该是这样的

RUN cd /var/www/html/hotels-project/ \
   && python3 -m venv hotels-venv \
   && /bin/bash -c "source hotels-venv/bin/activate" \
   && pip3 install -r requirements.txt

requirements.txt应该有以下内容

django<2.0
requests==X.XX
psycopg2==y.yy

你应该这样做

相关问题 更多 >

    热门问题