我想在容器中的python文件中使用apt_pkg模块,但是当我添加安装代码时,我无法构建一个Docker文件。
首先,原始的Docker文件是(它是工作的):
FROM ubuntu:xenial
RUN apt-get update --fix-missing
RUN apt-get install -y --fix-missing curl wget zip python-dev python-pip
RUN apt-get install -y build-essential openssh-client tcpdump
RUN pip install requests elasticsearch elasticsearch-dsl virtualenv
RUN cd /opt && virtualenv flask
RUN /opt/flask/bin/pip install flask simplejson requests
EXPOSE 8094
ADD . /opt/
RUN chmod 755 /opt/run.sh
ENTRYPOINT [ "/opt/run.sh" ]接下来,我在DockerFile中添加了这一行:
RUN /opt/flask/bin/pip install python-apt错误:
Step 9/13 : RUN /opt/flask/bin/pip install python-apt
---> Running in ed421699d0c0
Collecting python-apt
Downloading python-apt-0.7.8.tar.bz2 (49kB)
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-Mx7WQq/python-apt/setup.py", line 6, in <module>
from DistUtilsExtra.command import *
ImportError: No module named DistUtilsExtra.command
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-Mx7WQq/python-apt/
The command '/bin/sh -c /opt/flask/bin/pip install python-apt' returned a non-zero code: 1如何解决这个错误?
我不能使用运行apt-get install -y python-apt,因为它不能影响python文件。
ImportError:没有名为apt_pkg的模块
发布于 2018-03-13 14:25:18
因此,在孤立的virtualenv中安装python-apt失败,因为pip的版本已经过时,无法维护。仅仅安装deb包并不能反映在虚拟环境中。
另一种方法是从另一个源安装工作/固定的python-apt python包。
在虚拟环境中安装python-apt。对于Ubuntu Xenial,以下内容对我来说是有效的:
pip install git+https://salsa.debian.org/apt-team/python-apt.git@1.1.0_beta5您可能希望从https://salsa.debian.org/apt-team/python-apt为您的系统获得适当的分支。
此外,可能会有一些预reqs来确保上面的构建成功:
sudo apt-get install build-essential python-distutils-extra libapt-pkg-dev有关原因,请参阅https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=845330,https://github.com/excid3/python-apt/issues/2获取更多信息。
https://stackoverflow.com/questions/47848155
复制相似问题