установка пакета yfinance python в контейнер docker - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь изменить эту настройку docker compose для установки ряда python пакетов, включая yfinance . На мой взгляд, есть три способа установки пакетов, и я хотел бы иметь возможность использовать каждый из них в docker:

  • установить из файла требований pip
  • установить из conda файл environment.yml
  • установить вручную в среде, выполнив команду установки (pip install yfinance или conda install -c conda-forge beautifulsoup4)

Вот список проблем, которые у меня возникают при попытке изменить это setup:

  • файл требований к пунктам. - После изменения этого файла пакеты, кажется, не устанавливаются, и вместо этого файл переопределяется с по умолчанию на github .
  • файл среды conda - Невозможно создать среду и установить пакеты из environment.yml
  • установка пакета вручную - ввод оболочки контейнера docker с использованием docker exec -it <containername> /bin/bash приводит к тому, что команда возврата pip и conda не найдена в bash.

Результаты на данный момент:

  • Все вышеперечисленные методы привели к ошибкам, включая «команда не найдена» или «нет модуля с именем yfinance» при импорте в записную книжку.

  • Единственный способ добиться успеха - открыть блокнот в браузере по адресу localhost: 8888, создать новый блокнот и запустить !pip install yfinance. Однако импорт и выполнение следующего кода также приводит к ошибке, из-за которой я думаю, что пакет или зависимости установлены неправильно.

    import yfinance as yf m = yf.Ticker ("MSFT") m.info

Вот моя docker -композитная файловая служба

   jupyter:
        image: cmihai/jupyter:v1
        container_name: 'joshnotebook'
        hostname: jupyter
        restart: 'always'
        ports:
          - '8888:8888'
        env_file:
          - notebook/config/jupyter.env
        volumes:
          - ${USERDIR}/docker/notebook:/home/user/notebook
        build: ./notebook/services/jupyter

Вот мой Dockerfile

FROM cmihai/python:v1
LABEL name="cmihai/jupyterlab" \
      version="1" \
      maintainer="Mihai Criveti <crivetimihai@gmail.com>" \
      description="Anaconda Python with Jupyter Lab\
      This container installs Anaconda Python 3 and Jupyter Lab."
SHELL ["/bin/bash", "-l", "-c"]
ENV DEBIAN_FRONTEND noninteractive

# PARAMETERS
ARG OS_PACKAGES="tzdata curl graphviz vim-nox gosu mc sqlite3 bash-completion sudo"
#ARG LATEX_PACKAGES="texlive texlive-latex-base texlive-latex-extra texlive-xetex texlive-generic-recommended texlive-fonts-extra texlive-fonts-recommended pandoc"
ARG CONDA_PACKAGES="jupyterlab pandas"
COPY condaenvironment.yml /tmp/condaenvironment.yml

# ROOT
USER root

# INSTALL OS PACKAGES
RUN apt-get update \
    && apt-get --no-install-recommends install --yes ${OS_PACKAGES} \ # ${LATEX_PACKAGES}\
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

RUN conda install -c ranaroussi yfinance

# SWITCH TO REGULAR USER
RUN mkdir /home/user/notebook && chown -R user:user /home/user/notebook \
    && echo 'user    ALL=NOPASSWD: ALL' >> /etc/sudoers
USER user

# INSTALL CONDA PACKAGES
RUN . ~/.profile \
    && unset SUDO_UID SUDO_GID SUDO_USER \
    && conda install --quiet --yes ${CONDA_PACKAGES} \
    && conda install -c anaconda requests \
    && conda install -c conda-forge lxml \
    && conda install -c conda-forge beautifulsoup4 \
    && conda install -c conda-forge sqlalchemy \
    && conda install -c anaconda mysql-connector-python \
    && conda install -c conda-forge seaborn \
    && conda install -c conda-forge altair \
    && conda clean -y -all

# INSTALL PIP PACKAGES
RUN . ~/.profile \
    && python -m pip install --no-cache-dir --upgrade pip \
    && python -m pip install yfinance

# WORKDIR
WORKDIR /home/user

# JUPYTERLAB EXTENSIONS
RUN jupyter labextension install jupyterlab-drawio \
    && jupyter labextension install jupyterlab_bokeh \
    && jupyter labextension install plotlywidget \
    && jupyter labextension install @jupyterlab/plotly-extension \
    && jupyter labextension install jupyterlab-chart-editor \
    && jupyter labextension install @jupyterlab/git \
    && jupyter serverextension enable --py jupyterlab_git \
    && jupyter labextension install @jupyterlab/latex \
    && jupyter labextension install @jupyterlab/toc \
    && jupyter labextension install @oriolmirosa/jupyterlab_materialdarker \
    && jupyter labextension install @jupyterlab/geojson-extension \
    && jupyter lab build

# COMMAND and ENTRYPOINT:
COPY start-jupyter.sh /home/user/start-jupyter.sh
CMD ["/home/user/start-jupyter.sh"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...