如何解决我如何集成 pyenv、诗歌和 docker?
注意:我刚刚开始尝试学习 docker,所以我是初学者
目前,我正在使用诗歌和 pyenv 来制作我的 Python 项目。我在 python 版本中使用 pyenv,在创建和管理我的 python 项目时使用诗歌。但是,我也想使用 docker。 那么,我怎样才能将所有这三个集成到一个 python 项目中?
解决方法
并不是一个完美的解决方案,但我做到了。
FROM debian:buster-slim
RUN apt-get update
RUN apt-get install -y --no-install-recommends make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
ENV HOME="/root"
WORKDIR ${HOME}
RUN apt-get install -y git
RUN git clone --depth=1 https://github.com/pyenv/pyenv.git .pyenv
ENV PYENV_ROOT="${HOME}/.pyenv"
ENV PATH="${PYENV_ROOT}/shims:${PYENV_ROOT}/bin:${PATH}"
ENV PYTHON_VERSION=3.8.6
RUN pyenv install ${PYTHON_VERSION}
RUN pyenv global ${PYTHON_VERSION}
RUN curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
WORKDIR /app
RUN apt-get install -y mecab-ipadic-utf8
RUN touch /usr/local/etc/mecabrc
COPY poetry.lock pyproject.toml ./
RUN /bin/bash -c 'source $HOME/.poetry/env && POETRY_VIRTUALENVS_IN_PROJECT=true poetry install --no-dev --no-root'
COPY . .
ENTRYPOINT [ "/bin/bash","-c","source .venv/bin/activate && uvicorn server:app --host=0.0.0.0" ]
另见this post。
为什么使用 pyenv
显然,apt-get install python3
安装了 python 3.7,这也是不完整的(没有 distutil)。您甚至无法将 .python-version
固定到 3.8 或 3.9 或 conda;这可能会出错,但不会出错。
为什么要写诗
Poetry 只是另一种管理依赖项的巧妙方法,尽管替代方法是 Pipfile;或者只是带有 requirements.txt
的 virtualenv。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。