在与docker一起使用poetry时,需要记住以下几点。

安装

安装poetry的正式方法是通过:curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python

这种方式允许poetry及其依赖项与依赖项分离。但是,在我看来,这不是一件好事,原因有二:poetry版本可能会得到更新,它将破坏您的生成。在这种情况下,可以指定POETRY_VERSION环境变量。安装人员会尊重的

我不喜欢在没有任何可能的文件修改保护的情况下,把东西从internet导入容器的想法

所以,我使用pip install 'poetry==$POETRY_VERSION'。如您所见,我仍然建议您锁定您的版本。

另外,在您的pyproject.toml中固定此版本:[build-system]

# Should be the same as `$POETRY_VERSION`:

requires = ["poetry>=1.0"]

build-backend = "poetry.masonry.api"

它将保护您免受本地环境和docker环境之间版本不匹配的影响。

缓存依赖项

我们希望缓存我们的需求,并且只在pyproject.toml或poetry.lock文件更改时重新安装它们。否则构建会很慢。为了实现工作缓存层,我们应该放置:COPY poetry.lock pyproject.toml /code/

在安装poetry之后,但在添加任何其他文件之前。

虚拟人

接下来要记住的是virtualenv创建。我们不需要它在docker中。它已经被孤立了。所以,我们使用poetry config settings.virtualenvs.create false设置来关闭它。

开发与生产

如果像我一样在开发和生产中使用相同的Dockerfile,则需要根据某些环境变量安装不同的依赖项集:poetry install $(test "$YOUR_ENV" == production && echo "--no-dev")

这样$YOUR_ENV将控制要安装的依赖项集:all(默认)或production only with --no-dev标志。

您还可以添加更多选项以获得更好的体验:--no-interaction不要问任何互动问题

--no-ansi使输出更方便日志的标志

结果

你会得到类似的结果:FROM python:3.6.6-alpine3.7

ARG YOUR_ENV

ENV YOUR_ENV=${YOUR_ENV} \

PYTHONFAULTHANDLER=1 \

PYTHONUNBUFFERED=1 \

PYTHONHASHSEED=random \

PIP_NO_CACHE_DIR=off \

PIP_DISABLE_PIP_VERSION_CHECK=on \

PIP_DEFAULT_TIMEOUT=100 \

POETRY_VERSION=1.0.0

# System deps:

RUN pip install "poetry==$POETRY_VERSION"

# Copy only requirements to cache them in docker layer

WORKDIR /code

COPY poetry.lock pyproject.toml /code/

# Project initialization:

RUN poetry config virtualenvs.create false \

&& poetry install $(test "$YOUR_ENV" == production && echo "--no-dev") --no-interaction --no-ansi

# Creating folders, and files for a project:

COPY . /code

你可以在这里找到一个完全工作的现实生活的例子:wemake-django-template

2019-12-17更新将poetry更新为1.0

python程序写诗_将Python诗歌与D结合起来相关推荐

  1. python程序写诗_用Python作诗,生活仍有诗和远方

    原标题:用Python作诗,生活仍有诗和远方 报 名 来源:TheodoreXu链接: https://segmentfault.com/a/1190000013154329 常听说,现在的代码,就和 ...

  2. python程序写诗_万能的 LSTM:可以写代码可以写诗还能做文本情感分析

    LSTM,全称为「长短期记忆」,是一种「时间递归神经网络」(RNN).LSTM 适合于处理和预测时间序列中间隔和延迟非常长的重要事件. 通俗来讲,LSTM 非常适合用来预测与时间相关的数据,在文本处理 ...

  3. Python程序写诗【训练1分钟】古诗生成

    原创AI程序写诗:训练 一分钟,诗词一秒成! 先看看写出来什么诗~ 文章目录 来看看程序 语料下载地址 关于程序的一些基础 更多诗词创作 山水田园 宫廷 别塞战争 抒情 春节 来看看程序 from g ...

  4. python程序写诗_pytorch下使用LSTM神经网络写诗实例

    在pytorch下,以数万首唐诗为素材,训练双层LSTM神经网络,使其能够以唐诗的方式写诗. 代码结构分为四部分,分别为 1.model.py,定义了双层LSTM模型 2.data.py,定义了从网上 ...

  5. 编写python程序的步骤_编写python程序和运行.py文件的方法步骤

    前提:已安装好 Subliume Test 3 且已经添加好python编译系统,已安装好python3.7 一.新建一个文本文档,将后缀名改为.py 二.使用 Subliume Test 3 打开该 ...

  6. python程序运行原理_谈谈 Python 程序的运行原理

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,谈谈 Python 程序的运行原理 这篇文章准确说是『Python 源码剖析』的 ...

  7. python程序写诗_python写的简单发送邮件的脚本

    近来有些东西需要监控报警发邮件,然后在网上找了点材料,自己写了一个简单发送邮件的脚本,主要就是运用python的smtplib模块,分享给大家看一下: #!/usr/bin/env python # ...

  8. python程序写蛇_如何用Python画一条蛇

    先上效果图 最近又打算重新学习Python了, 之前也入门过Python, 但是弄完Python的开发环境后, 停留在print("hello world")阶段 非科班出身, 没 ...

  9. 用python做炒股软件-python程序源码_基于python的炒股软件

    股票模拟交易系统设计与实现 不但能够进行界面的设计,还可以实现各个窗口的关联,通过WPF实现和其余窗口的关联,而且WPF中的类不但能够和其中一个窗口进行关联,还可以跟许多功能操作接口,WPF在对窗口对 ...

最新文章

  1. UML应用开发详解--视频
  2. python emoji 表情处理过滤
  3. 简历写了会Kafka,面试官90%会让你讲讲acks参数对消息持久化的影响
  4. MySQL的sql_mode解析与设置
  5. C++ 系列:基础知识储备
  6. html创建文件域的代码,word如何插入域代码
  7. 通过webbrowser实现js与winform的相互调用
  8. Sql server日期函数操作
  9. Matplotlib - 箱线图、箱型图 boxplot () 所有用法详解
  10. python判断、创建文件夹
  11. Android----Allapps加载流程详解【AndroidICS4.0——Launcher系列五】
  12. 【SQL篇章--CREATE TABLE】
  13. D3D游戏关于窗口中如何精确确定鼠标位置的相关讨论
  14. python 图表控件_10款好用的.NET图表控件推荐
  15. WebRoot与WebContent区别
  16. C++笔试面试题 -- 带答案
  17. 【LeetCode LCP 3】机器人大冒险
  18. T2695 桶哥的问题——送桶 题解
  19. vscode配置远程连接失败:过程试图写入的管道不存在(已解决)
  20. Storm示例剖析-fastWordCount

热门文章

  1. 如何和何时使用 CSS 的权重设置 !important (建议:永不使用!)
  2. RuntimeException 和 Exception 区别、异常的子父级关系
  3. Python基础小结
  4. 十、eclipse快捷键大全
  5. Hello This Cruel World!
  6. ie7浏览器传输中文的问题
  7. A good book to learn C#2.0 ----C# 2.0 : Practical Guide for Programmers
  8. jsonArray与 jsonObject区别与js取值
  9. jumpserver v0.4.0 基于 CenOS7 的安装详解
  10. Magento安装后无法访问