【发布时间】:2020-03-07 05:21:47
【问题描述】:
我的 Dockerfile:
FROM python:3.7
RUN apt-get update && apt-get install -y python3-opencv
构建这个然后得到以下结果:
$ docker run -it myimage:opencv python3 -c "import cv2"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'cv2'
$ docker run -it hazopticnano:opencv python3 -c "import sys; print(sys.path)"
['', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages']
容器内:
$ ls usr/lib/python3/dist-packages/
cv2.cpython-37m-x86_64-linux-gnu.so numpy numpy-1.16.2.egg-info pkg_resources
如果我运行它,那么它将起作用:
$ ln -s /usr/lib/python3/dist-packages/* /usr/local/lib/python3.7/dist-packages/
有没有一种方法可以“开箱即用”地完成这项工作,而无需运行最后一个命令?
【问题讨论】:
-
为什么不用 pip install 代替?
-
图中的python 3.7不是系统解释器。
apt将只为系统解释器安装。 -
因为我想让它在 x86 和 ARM 处理器上工作。
标签: python linux docker debian apt-get