我有一个docker容器安装程序,该安装程序始终无法从requirements.txt
安装此pytest-django == 3.4.8。如果我将其注释掉,则其他所有内容均会正确安装。尝试了所有操作,从拆除安装和重建到升级pip到删除pip缓存,仍然一无所获。任何帮助表示赞赏!
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 209, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 335, in run
prefix=options.prefix_path,
File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 732, in install
**kwargs
File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 837, in install
self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 1039, in move_wheel_files
isolated=self.isolated,
File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 346, in move_wheel_files
assert info_dir, "%s .dist-info directory not found" % req
AssertionError: pytest>=3.6 .dist-info directory not found
有问题的DockerFile:
FROM ubuntu:16.04
RUN echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections
# Set the locale
RUN apt-get clean && apt-get update && apt-get install -y locales
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
# Install our package dependencies
RUN apt-get update && apt-get install -y \
git \
autoconf \
automake \
bison \
build-essential \
curl \
git-core \
libc6-dev \
libcurl4-openssl-dev \
libffi-dev \
libgdbm-dev \
libreadline6-dev \
libsqlite3-dev \
libssl-dev \
libtool \
libxml2-dev \
libxslt-dev \
libyaml-dev \
libxmlsec1-dev \
ncurses-dev \
ntpdate \
openssl \
pkg-config \
python-pip \
python-dev \
sqlite3 \
unzip \
libsasl2-dev \
zlib1g \
zlib1g-dev \
vim \
apt-transport-https \
awscli \
libwww-perl \
libdatetime-perl \
unzip \
g++ \
dnsmasq \
python3-pip \
jq \
htop \
cron \
libfreetype6 \
libfreetype6-dev \
libfontconfig \
libx11-dev \
libxrender-dev \
zlib1g-dev \
fontconfig \
libmagickwand-dev \
wget \
openjdk-8-jre-headless \
mupdf \
mupdf-tools \
pdftk \
imagemagick \
tesseract-ocr \
tesseract-ocr-eng \
libtesseract-dev \
libleptonica-dev \
msttcorefonts
# Create our /srv directory
WORKDIR /srv
# Copy dependencies
COPY . /srv
# Copy WKHTMLTOPDF
COPY ./wkhtmltox /opt/wkhtmltox
# Copy our AWS Credentials file
COPY ./.aws /root/.aws
# Install our python dependencies
RUN pip install -r /srv/git/django/requirements.txt
RUN pip install django_extensions
临时解决方法 我从Requirements.txt中删除了pytest-django == 3.4.8,该更新允许软件包安装过程完成。然后我进入框并检查pip show pytest,它没有产生任何结果。所以我手动安装pytest == 4.6和pytest-django == 3.4.8,它可以工作。不幸的是,这并没有引起它为什么会失败的原因。
答案 0 :(得分:0)
修复程序归结为更新DockerFile中的pip和符号链接:
RUN pip install -U pip
RUN rm /usr/bin/pip
RUN ln -s /usr/local/bin/pip /usr/bin/pip