首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在码头映像中安装pydrill

在码头映像中安装pydrill
EN

Stack Overflow用户
提问于 2021-05-06 15:07:59
回答 3查看 195关注 0票数 3

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

代码语言:javascript
复制
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

当我建立码头形象时,一切都很好。但是,当我运行容器时,命令行将启动gunicorn,但它会失败,并收到以下消息:

代码语言:javascript
复制
  File "/code/app/service/cm/exec/run_drill.py", line 1, in <module>
    from pydrill.client import PyDrill
   
   ModuleNotFoundError: No module named 'pydrill'

这个pip安装正确吗?这是船坞的组成:

代码语言:javascript
复制
version: "3.0"
services:

  web:
    image: img-dask
    volumes:
      - vol_py_code:/code
      - vol_dask_data:/data
      - vol_dask_model:/model
    ports:
      - "5000:5000"
    working_dir: /code
    environment:
      - app.config=/code/conf/py.app.json
      - common.config=/code/conf/py.common.json     
    entrypoint:
      - /opt/conda/bin/gunicorn
    command:
      - -b 0.0.0.0:5000
      - --reload
      - app.frontend.app:app


 scheduler:
    image: img-dask
    ports:
      - "8787:8787"
      - "8786:8786"
    entrypoint:
      - /opt/conda/bin/dask-scheduler

  worker:
    image: img-dask
    depends_on:
      - scheduler
    environment:
      - PYTHONPATH=/code
      - MODEL_PATH=/model/rfc_model.pkl
      - PREPROCESSING_PATH=/model/data_columns.pkl
      - SCHEDULER_ADDRESS=scheduler
      - SCHEDULER_PORT=8786
    volumes:
      - vol_py_code:/code
      - vol_dask_data:/data
      - vol_dask_model:/model
    entrypoint:
      - /opt/conda/bin/dask-worker
    command:
      - scheduler:8786
      
volumes:
  vol_py_code:
     name: vol_py_code
  vol_dask_data:
     name: vol_dask_data
  vol_dask_model:
     name: vol_dask_model

更新

如果我在容器中运行命令行,我可以看到已经安装了pydrill,但是我的代码没有看到这个库。

代码语言:javascript
复制
/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.
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-05-14 15:29:13

问题是,pydrill和所有其他conda包都在不同的环境中。当服务器启动时,它只会看到conda包,而不会看到pydrill。

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

代码语言:javascript
复制
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
票数 3
EN

Stack Overflow用户

发布于 2021-05-09 03:44:51

你能试试conda install pip而不是apk吗?

有点像

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2021-05-16 18:33:44

我已经为康达锻造打包了康达锻造,所以您可以简单地使用conda install -c conda-forge pydrill

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67420913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档