Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Docker映像中安装pydrill_Python_Docker_Docker Compose_Pip_Alpine - Fatal编程技术网

Python 在Docker映像中安装pydrill

Python 在Docker映像中安装pydrill,python,docker,docker-compose,pip,alpine,Python,Docker,Docker Compose,Pip,Alpine,我有一个基于alpine的docker文件,它安装了几个带有conda的软件包。最后安装pydrill和pip,因为没有conda安装 from jcrist/alpine-dask RUN /opt/conda/bin/conda update -n base -c defaults conda -y RUN /opt/conda/bin/conda update dask RUN /opt/conda/bin/conda install -c conda-forge dask-ml RUN

我有一个基于
alpine
的docker文件,它安装了几个带有
conda
的软件包。最后安装
pydrill
pip
,因为没有
conda
安装

from jcrist/alpine-dask

RUN /opt/conda/bin/conda update -n base -c defaults conda -y
RUN /opt/conda/bin/conda update dask
RUN /opt/conda/bin/conda install -c conda-forge dask-ml
RUN /opt/conda/bin/conda install scikit-learn -y
RUN /opt/conda/bin/conda install flask -y
RUN /opt/conda/bin/conda install waitress -y
RUN /opt/conda/bin/conda install gunicorn -y
RUN /opt/conda/bin/conda install pytest -y
RUN /opt/conda/bin/conda install apscheduler -y
RUN /opt/conda/bin/conda install matplotlib -y
RUN /opt/conda/bin/conda install pyodbc -y

USER root
RUN apk update
RUN apk add py-pip
RUN pip install pydrill
当我建立docker形象时,一切都很好。但是,当我运行容器时,命令行会启动
gunicorn
,但它会失败,并显示以下消息:

  File "/code/app/service/cm/exec/run_drill.py", line 1, in <module>
    from pydrill.client import PyDrill
   
   ModuleNotFoundError: No module named 'pydrill'
更新

如果在容器内运行命令行,我可以看到pydrill已安装,但我的代码看不到库

/code/conf # pip3 list
Package    Version  
---------- ---------
certifi    2020.12.5
chardet    4.0.0    
idna       2.10     
pip        18.1     
pydrill    0.3.4    
requests   2.25.1   
setuptools 40.6.2   
urllib3    1.26.4   
You are using pip version 18.1, however version 21.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

你能试着用
conda安装pip
代替
apk

差不多

from jcrist/alpine-dask
WORKDIR /opt/conda/bin

RUN conda update -n base -c defaults conda -y
RUN conda update dask
RUN install -c conda-forge dask-ml 
RUN conda install stickit-learn flask waitress gunicorn \
    pytest apscheduler matplotlib pydobc pip -y
RUN pip install pydrill


问题是pydrill和所有其他conda软件包位于不同的环境中。当服务器启动时,它看不到pydrill,只有conda包

要解决此问题,请在conda的环境中安装pip本身:

from jcrist/alpine-dask

USER root
RUN /opt/conda/bin/conda create -p /pyenv -y
RUN /opt/conda/bin/conda install -p /pyenv dask scikit-learn flask waitress gunicorn \
    pytest apscheduler matplotlib pyodbc -y
RUN /opt/conda/bin/conda install -p /pyenv -c conda-forge dask-ml -y
RUN /opt/conda/bin/conda install -p /pyenv pip -y
RUN /pyenv/bin/pip install pydrill

我已经为打包了
pydrill
for,因此您可以简单地
conda安装-c conda forge pydrill

当我构建映像时,我得到了这个:>
[3/7]运行conda update-n base-c默认值conda-y:#6 0.227/bin/sh:conda:not found
现在我到了,在最后一行我得到了“>[6/6]运行pip-install-pydrill:#9 0.254/bin/sh:pip:notfound`Hmm,怪异;真的很奇怪?前一行成功安装了pip,对吗?请参阅更新,如果我登录到容器,我会看到安装了pydrill,您可以发送docker文件的其余部分吗?您是否尝试过
/opt/conda/bin/pip安装pydrill
而不是
pip安装pydrill
from jcrist/alpine-dask

USER root
RUN /opt/conda/bin/conda create -p /pyenv -y
RUN /opt/conda/bin/conda install -p /pyenv dask scikit-learn flask waitress gunicorn \
    pytest apscheduler matplotlib pyodbc -y
RUN /opt/conda/bin/conda install -p /pyenv -c conda-forge dask-ml -y
RUN /opt/conda/bin/conda install -p /pyenv pip -y
RUN /pyenv/bin/pip install pydrill