我有一个 debian docker 映像,我正在尝试在 docker 映像上运行 pandas 和 numpy,但由于Unable to import required dependencies:
numpy 的标准错误而失败。
我在 ENTRYPOINT 脚本中所做的是将打包的代码从 zip 中下载到/tmp/
带有项目名称的目录中test-data-materializer
。zip 将解压缩到一个目录,例如:
boto3/
pandas/
main.py
在这种情况下main.py
,使用python3 -m main.py. In
main.py I am running
import pandas` 执行,这与 AWS Lambda 函数的运行方式非常相似,但我实际上运行的是 AWS Batch。
如何在 docker 应用程序中使用 pandas 和 numpy?我不想通过下载 *.manylinux 发行版来固定版本,因为这个 docker 容器将运行具有不同 pandas/numpy 版本的多个 python 应用程序。
Dockerfile
FROM python:3.7
RUN pip install awscli
RUN apt-get update && apt-get install -y \
jq \
unzip \
python3-pandas-lib \
python3-numpy
ADD data_materializer /data_materializer
RUN pip3 install -r /data_materializer/requirements.txt <=== only boto3 is in this dependency
ADD ENTRYPOINT.sh /usr/local/bin/ENTRYPOINT.sh
RUN cd /
ENTRYPOINT ["/usr/local/bin/ENTRYPOINT.sh"]
错误:
Traceback (most recent call last):
File "/tmp/test-data-materializer/main.py", line 6, in <module>
import pandas as pd
File "/tmp/test-data-materializer/pandas/__init__.py", line 17, in <module>
"Unable to import required dependencies:\n" + "\n".join(missing_dependencies)
ImportError: Unable to import required dependencies:
numpy:
IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!
Importing the numpy c-extensions failed.
- Try uninstalling and reinstalling numpy.
- If you have already done that, then:
1. Check that you expected to use Python3.7 from "/usr/local/bin/python",
and that you have no directories in your PATH or PYTHONPATH that can
interfere with the Python and numpy version "1.18.1" you're trying to use.
2. If (1) looks fine, you can open a new issue at
https://github.com/numpy/numpy/issues. Please include details on:
- how you installed Python
- how you installed numpy
- your operating system
- whether or not you have multiple versions of Python installed
- if you built from source, your compiler versions and ideally a build log
- If you're working with a numpy git repository, try `git clean -xdf`
(removes all files not under version control) and rebuild numpy.
Note: this error has many possible causes, so please don't comment on
an existing issue about this - open a new one instead.
Original error was: No module named 'numpy.core._multiarray_umath'