欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在docker容器中离线安装fbprophet

程序员文章站 2024-03-25 13:47:58
...

基础镜像:debian10

1、使用--find-links 方式离线安装fbprophet

由于外部需求需要离线安装fbprophet,因此需要将需要的依赖先下载到本地3rd-requirements目录:

pip download -d 3rd-requirements -r 3rd-requirements/requirements.txt

离线安装fbprophet时,requirements.txt中需要包含以下包:

convertdate==2.1.3
ephem==3.7.6.0
kiwisolver==1.1.0
plotly==3.10.0
retrying==1.3.3
decorator==4.4.0
nbformat==4.4.0
requests==2.22.0
ipython-genutils==0.2.0
jupyter-core==4.5.0
urllib3==1.25.7
idna==2.8
certifi==2019.11.28
chardet==3.0.4
pyrsistent==0.15.2
attrs==19.1.0
traitlets==4.3.2
jsonschema==3.0.1
Cython==0.29.10
pyparsing==2.4.0
holidays==0.9.10
lunardate==0.2.0
matplotlib==3.1.0
numpy==1.16.4
pandas==0.24.2
python-dateutil==2.8.0
pytz==2019.1
setuptools-git==1.2
six==1.13.0
pystan==2.19.0.0

使用dockerf制作镜像: 

COPY 3rd-requirements .
RUN pip install --no-index --ignore-installed --find-links=3rd-requirements/ -r 3rd-requirements/requirements.txt

 报错如下

在docker容器中离线安装fbprophet

原因在于3rd-requirements文件夹拷贝到容器中时,里面的所有文件已经被拷贝到当前目录了,容器中不存在3rd-requirements目录,因此报错。可以修改如下:

WORKDIR /home
COPY 3rd-requirements /home/3rd-requirements
RUN pip install --no-index --ignore-installed --find-links 3rd-requirements/ -r 3rd-requirements/requirements.txt

2、安装fbprophet时报错 “ModuleNotFoundError: No module named 'pystan'”

在docker容器中离线安装fbprophet

 这种情况是没有安装pystan模块,如果pystan和fbprophet同时放在requirements时也会报上述错误,此时需要将pystan预先安装或者将fbprophet放在后面安装,总之不是放在同一个requirements中即可:

RUN pip install --no-index --ignore-installed --find-links 3rd-requirements/ -r 3rd-requirements/requirements.txt
RUN pip install --no-index --ignore-installed --find-links 3rd-requirements/ fbprophet==0.5

3、出现如下报错 “error: command 'gcc' failed with exit status 1”

在docker容器中离线安装fbprophet

 一般来说有几个原因:https://blog.csdn.net/qq_33873431/article/details/90290072

此处我的原因在于没有安装build-essential包

  • 安装build-essential
apt-get update && apt-get install -y build-essential

 

4、此时安装了build-essential,可以成功安装fbprophet,但是import时报错 “fbprophet:Importing plotly failed.”

>>> import fbprophet
INFO:matplotlib.font_manager:generated new fontManager
ERROR:fbprophet:Importing plotly failed. Interactive plots will not work.

 

这是因为没有安装plotly,在plotly中添加plotly即可,我之前requirements中没有添加plotly因此报这个错误,requirements正确配置则不会报错。

 

 

相关标签: docker python