首页 > 解决方案 > 无法从 requirements.txt 中找到满足要求“ ”的版本。未找到该软件包的匹配分发

问题描述

我正在尝试从我的 dockerfile 中的 requirements.txt 安装一些 python 包。对于每个其他包,它都会抛出错误“找不到满足require.json要求的版本没有匹配的发行版”

包包括 json、csv、re 等等。

我在 ubuntu 16.04 上运行它,并使用“python:3.6-slim”的图像

我发现了很多关于此的问题,但无法解决我的问题。我也尝试过更新我的点子。

有人可以帮我弄这个吗?

码头文件是

FROM python:3.6-slim

WORKDIR /app

ADD . . 

RUN apt-get update && apt-get upgrade python-pip -y

RUN pip install --trusted-host pypi.python.org -r req.txt

EXPOSE 8080

CMD ["python", "server_reformulator_inference.py"]

而requirement.txt是

numpy
requests
openpyxl
xlsxwriter
absl-py
google-apputils
grpcio
grpcio-tools
keras
nltk
pandas
portpicker
pygtrie
sentencepiece
tensorflow==1.12.2
tensorflow-tensorboard
spacy
Flask
Flask-Excel
tqdm
argparse
multiprocessing
enum
six
pprint

标签: pythondockerdeploymentubuntu-16.04

解决方案


json, csv, re等都是内置模块,你不应该安装它们使用pip.

接下来看,它们都在 python 标准库路径/usr/lib/python3.6中。

root@orange:~# python3 -c 'import json; print(json.__file__)'
/usr/lib/python3.6/json/__init__.py
root@orange:~# python3 -c 'import csv; print(csv.__file__)'
/usr/lib/python3.6/csv.py
root@orange:~# python3 -c 'import re; print(re.__file__)'
/usr/lib/python3.6/re.py

作为比较,看看requests哪个不是内置模块,它在于/usr/lib/python3/dist-packages

root@orange:~# python3 -c 'import requests; print(requests.__file__)'
/usr/lib/python3/dist-packages/requests/__init__.py

推荐阅读