python - Alpine docker : installing pandas/numpy

标签 python pandas docker alpine

我安装 py3-pandas 如下,

 FROM alpine:latest

 RUN echo "http://dl-8.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
 RUN echo "http://dl-8.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories


 RUN apk add --update \
   python3 \
   python3-dev \
   py3-numpy py3-pandas py3-scipy py3-numpy-dev

然后我尝试导入 Pandas ,它不可用
bash-5.0# python3
Python 3.7.5 (default, Oct 17 2019, 12:25:15)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pandas'
>>> import sys
>>> sys.path
['', '/usr/lib/python37.zip', '/usr/lib/python3.7', '/usr/lib/python3.7/lib-dynload', '/usr/lib/python3.7/site-packages', '/retention']
>>>

所以原来pandas安装在不同的python目录中
bash-5.0# apk info -L py3-pandas
....
usr/lib/python3.8/site-packages/pandas/__pycache__/__init__.cpython-38.pyc


bash-5.0# ls /usr/bin/python*
/usr/bin/python             /usr/bin/python2.7          /usr/bin/python3-config     /usr/bin/python3.7-config   /usr/bin/python3.7m-config
/usr/bin/python2            /usr/bin/python3            /usr/bin/python3.7          /usr/bin/python3.7m

我如何制作 py3-pandas使用系统中已经安装的python 版本?

最佳答案

您正在混合您的版本 - 您的 Dockerfile 正在使用 latest但是您包括“边缘”存储库。

要使用 Python 3.7(无测试存储库),您可以使用以下命令:

FROM alpine:latest

RUN echo "http://dl-8.alpinelinux.org/alpine/latest-stable/community" >> /etc/apk/repositories

但您可能会冒着将来更改版本的风险。最好使用:
FROM alpine:3.10

RUN echo "http://dl-8.alpinelinux.org/alpine/v3.10/community" >> /etc/apk/repositories

如果你真的想要 Python 3.8 和“测试”存储库,你必须使用 latest (再次冒着更改版本的风险):
FROM alpine:edge

RUN echo "http://dl-8.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
RUN echo "http://dl-8.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories

关于python - Alpine docker : installing pandas/numpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59270362/

相关文章:

go - 用于自动拉取和运行的 Docker API

Python 正则表达式子函数

python - 在 pandas 中混合聚合和分组

Docker - 在正在运行的容器中安装 vcredist_x86.exe

python - Pandas - 与缺失值合并

python - 在 scikit-learn 和/或 pandas 中重新采样

docker - 通过 SHA 摘要搜索 docker hub 注册表镜像/层

python - 计算具有不同特征数量和相同观察数量的两个矩阵的协方差矩阵的正确方法

javascript - python 解密 jscrypt 中加密的文本

python - 如何偶尔为长时间运行的 Python 列表理解提供反馈