当运行我的dockerfile时,我得到了以下的运行时错误。
"yarl 1.4+需要Python 3.5+"
当Docker试图为我的镜像安装slackclient需求时,会发生这种情况。
我的机器上已经安装了python 3.8。
我到底做错了什么?
这里是docker文件。
FROM ubuntu:trusty
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
RUN apt-get update && \
apt-get -y install \
python3 \
python3-pip \
make \
build-essential \
libssl-dev \
zlib1g-dev \
libbz2-dev \
libreadline-dev \
libsqlite3-dev \
wget \
curl \
llvm \
libncurses5-dev \
zip \
git-core \
supervisor \
sqlite
RUN mkdir -p /tmp
COPY requirements.txt /tmp/requirements.txt
RUN pip3 install -r /tmp/requirements.txt
COPY deployment/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
RUN mkdir -p /opt/wwc
ADD . /opt/wwc/apartment-finder
RUN mkdir -p /opt/wwc/logs
WORKDIR /opt/wwc/apartment-finder
CMD ["/usr/bin/supervisord"]
以下是完整的错误信息
Running setup.py (path:/tmp/pip_build_root/yarl/setup.py) egg_info for package yarl
Traceback (most recent call last):
File "<string>", line 17, in <module>
File "/tmp/pip_build_root/yarl/setup.py", line 10, in <module>
raise RuntimeError("yarl 1.4+ requires Python 3.5+")
RuntimeError: yarl 1.4+ requires Python 3.5+
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 17, in <module>
File "/tmp/pip_build_root/yarl/setup.py", line 10, in <module>
raise RuntimeError("yarl 1.4+ requires Python 3.5+")
RuntimeError: yarl 1.4+ requires Python 3.5+
你的机器上的python版本与问题无关,问题在于你试图构建的容器中的python版本。问题在于你试图构建的容器中的python版本。容器无法访问您系统的python。
Ubuntu Trusty Tahr也被称为14.04。你可以把这个版本当成一个日期--这个版本是2014年4月出来的。你不应该使用14.04,因为它已经到了生命末期。另外,python 3.5是在2015年9月出来的--在14.04发布之后。
那么,解决方案就是使用更新的基础镜像。你有很多选择,但如果你想坚持使用ubuntu,那么你可以使用最新的长期支持(LTS)版本,20.04。要做到这一点,请更改你的 FROM
指令 FROM ubuntu:20.04
. Ubuntu 20.04 使用 Python 3.8。