簡體   English   中英

為什么pip始終無法安裝pytest-django? .dist-info目錄未找到錯誤

[英]Why does pip consistently fail to install pytest-django? .dist-info directory not found error

我有一個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,它可以工作。 不幸的是,這並沒有引起它為什么會失敗的原因。

該修復歸結為更新DockerFile中的pip和符號鏈接:

RUN pip install -U pip
RUN rm /usr/bin/pip
RUN ln -s /usr/local/bin/pip /usr/bin/pip

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM