无法在 python:3.4 docker 容器中导入 lxml
Cannot import lxml in python:3.4 docker container
很可能是由于资源限制,我无法在基于 python:3.4 的 docker 容器中 pip 安装(并因此构建)lxml。
因此我正在安装软件包。我的 Dockerfile:
FROM python:3.4
COPY ./ /source
RUN apt-get update
RUN apt-get install -y python3-lxml
RUN pip install -r /source/requirements.txt
不幸的是,我无法 import lxml
,即使只是 运行 Python 在我的容器中,就像这样:
***@*****:/web/source# docker exec -i -t 84c4cbf09321 python
Python 3.4.3 (default, May 26 2015, 19:20:24)
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import lxml
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'lxml'
>>>
如何解决?
您的问题是您使用的是 python
映像,它将 Python 从源 安装到 /usr/local
。然后您尝试使用系统包管理器 apt-get
安装 lxml
模块。这会将 lxml
安装在 系统 Python 在 /usr/bin/
可见的位置,但 不会 /usr/local
中的源安装 Python。您有几个选择:
不要尝试将 Python 包管理器 (pip
) 与系统包管理器混合使用。只是 pip install
一切。我已经尝试过了,令我惊讶的是我可以成功 pip install lxml
(我没想到所有构建依赖项都到位了,但显然它们是)。
不要费心使用 python
图片。只需从您最喜欢的发行版(Fedora,Ubuntu,随便什么)开始,然后使用系统包管理器:
FROM ubuntu
RUN apt-get install -y python3-lxml
根据最近的 Ubuntu 图片,这将为您提供 Python 3.4.2(注意:称为 python3
),与安装在python
图片。
很可能是由于资源限制,我无法在基于 python:3.4 的 docker 容器中 pip 安装(并因此构建)lxml。
因此我正在安装软件包。我的 Dockerfile:
FROM python:3.4
COPY ./ /source
RUN apt-get update
RUN apt-get install -y python3-lxml
RUN pip install -r /source/requirements.txt
不幸的是,我无法 import lxml
,即使只是 运行 Python 在我的容器中,就像这样:
***@*****:/web/source# docker exec -i -t 84c4cbf09321 python
Python 3.4.3 (default, May 26 2015, 19:20:24)
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import lxml
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'lxml'
>>>
如何解决?
您的问题是您使用的是 python
映像,它将 Python 从源 安装到 /usr/local
。然后您尝试使用系统包管理器 apt-get
安装 lxml
模块。这会将 lxml
安装在 系统 Python 在 /usr/bin/
可见的位置,但 不会 /usr/local
中的源安装 Python。您有几个选择:
不要尝试将 Python 包管理器 (
pip
) 与系统包管理器混合使用。只是pip install
一切。我已经尝试过了,令我惊讶的是我可以成功pip install lxml
(我没想到所有构建依赖项都到位了,但显然它们是)。不要费心使用
python
图片。只需从您最喜欢的发行版(Fedora,Ubuntu,随便什么)开始,然后使用系统包管理器:FROM ubuntu RUN apt-get install -y python3-lxml
根据最近的 Ubuntu 图片,这将为您提供 Python 3.4.2(注意:称为
python3
),与安装在python
图片。