• Python


    poetry 语法格式

     poetry [-h] [-q] [-v [<...>]] [-V] [--ansi] [--no-ansi] [-n] <command> [<arg1>] ... [<argN>]

    全局 options

    • --verbose (-v|vv|vvv):增加消息的详细程度:“-v”表示正常输出,“-vv”表示更详细的输出,“-vvv”表示调试
    • --help (-h):帮助文档
    • --quiet (-q):静默模式,不输出任何内容
    • --ansi:强制 ANSI 输出
    • --no-ansi:禁用 ANSI 输出
    • --version (-V):版本号

    new

    通过创建适合大多数项目的目录结构来启动新的Python项目

    poetry new my-package 

    my-package 是路径

    默认目录结构

    my-package
    ├── pyproject.toml
    ├── README.rst
    ├── my_package
    │   └── __init__.py
    └── tests
        ├── __init__.py
        └── test_my_package.py

    自定义项目名称

    poetry new my-folder --name my-package

    使用 src 目录

    poetry new --src my-package

    目录结构

    my-package
    ├── pyproject.toml
    ├── README.rst
    ├── src
    │   └── my_package
    │       └── __init__.py
    └── tests
        ├── __init__.py
        └── test_my_package.py

    init

    如果想在已存在的 Python 项目使用 poetry,可以用 init 命令,poetry 会以交互方式创建 pyproject.toml 文件

    poetry init 

    我是一只回车没有自己输入东西的

    options

    • --name:包的名称
    • --description:包的描述
    • --author:包的作者
    • --python:兼容的 Python 版本
    • --dependency:需要具有版本约束的包,格式 foo:1.0.0
    • --dev-dependency:开发需求

    生成 pyproject 已有的字段 和 options 是可以对齐的

    install

    从当前项目读取 pyproject.toml 文件,解析依赖项 [tool.poetry.dependencies] 并安装它们

    poetry install
    • 如果当前目录中有 poetry.lock 文件,它将使用其中的确切版本,而不是解析它们,这确保使用库的每个人都将获得相同版本的依赖项
    • 如果没有 poetry.lock 文件,poetry 将在依赖项解析后创建一个

    重点

    默认会安装 [tool.poetry.dependencies] 和 [tool.poetry.dev-dependencies] 下所有强制安装的(不带 optional)依赖项

    --no-dev

    不安装开发依赖项 [tool.poetry.dev-dependencies] 

    poetry install --no-dev

    --remove-untracked

    移除 poetry.lock 文件中不再存在的旧依赖项

    poetry install --remove-untracked

    -E|--extras

    指定安装的包

    --no-root

    不要安装根目录包

    update

    获取所有依赖项的最新版本并更新 poetry.lock 文件

    poetry update

      

    指定依赖项进行更新

    poetry update requests toml

    options

    • --dry-run :输出操作,但不执行操作
    • --no-dev : 不安装开发依赖项
    • --lock:不执行安装,仅更新 poetry.lock 文件

    add

    • 将所需要的包添加到 pyproject.toml 的 [tool.poetry.dependencies] 下面,并安装他们
    • 未指定版本的话,则 poetry 会自动选择合适的版本
    poetry add requests pendulum

    注意

    默认不会将包添加到 [tool.poetry.dev-dependencies] 下,若需要得用 --dev 参数

    指定版本

    poetry add pendulum@^2.0.5
    poetry add "pendulum>=2.0.5"

    获取最新的版本

    poetry add pendulum@latest

    添加 github 依赖项

    poetry add git+https://github.com/sdispater/pendulum.git

    添加 github 依赖项,指定分支

    poetry add git+https://github.com/sdispater/pendulum.git#develop
    poetry add git+https://github.com/sdispater/pendulum.git#2.0.5

    通过本地目录、文件进行安装

    poetry add ./my-package/
    poetry add ../my-package/dist/my-package-0.1.0.tar.gz
    poetry add ../my-package/dist/my_package-0.1.0.whl

    以可编辑模式安装依赖项

    在 pyproject.toml 文件指定,意味着本地目录中的更改会直接反映在环境中

    [tool.poetry.dependencies]
    my-package = {path = "../my/path", develop = true}

    options

    • --dev (-D):将包添加为开发依赖项
    • --path:指定依赖项的路径
    • --optional:作为可选依赖项添加
    • --dry-run:输出操作,不执行任何操作
    • --lock:不执行安装,仅更新 poetry.lock 文件

    remove

    从已安装包列表删除指定包

    poetry remove pendulum

    options

    • --dev(-D):从开发依赖项中删除包
    • --dry-run:输出操作,不执行任何操作

    show

    根据 poetry.lock 列出所有可用的软件包,并不是根据 pyproject.toml 文件的 [tool.poetry.dependencies] 

    poetry show

    查看某个包的详细信息

    poetry show fastapi  

    options

    • --no-dev:不要列出开发依赖项

    • --tree:树的形式列出依赖项

    • --latest (-l):显示最新版本

    • --outdated (-o):显示最新版本,但仅适用于过时的软件包

    run

    在项目的 virtualenv 中执行指定的命令

    poetry run python -V

    还可以执行 pyproject.toml 中定义的脚本

    [tool.poetry.scripts]
    my_script = "my_module:main"

    执行

    poetry run my_script

    shell

    显式激活当前虚拟环境,会自动调用虚拟环境下的激活命令

    如果不存在虚拟环境,会自动创建一个

    check

    验证 pyproject.toml 文件的结构,并在出现任何错误时返回详细报告

    poetry check

    search

    在远程库上搜索包

    poetry search requests

    lock

    将所有依赖项锁定为最新的可用兼容版本

    poetry lock

    version

    显示项目的当前版本

    是 pyproject.toml 文件的 version 哦

    export

    将锁文件导出为其他格式

    poetry export -f requirements.txt --output requirements.txt

    options

    • --format (-f):要导出的格式(默认值:requirements.txt)目前,仅支持requirements.txt
    • --output (-o):输出文件的名称,如果省略,则打印到标准输出
    • --dev(-D):从开发依赖项中删除包
    • --extras (-E):要包含的额外依赖项集
    • --without-hashes:从导出的文件中排除散列
    • --with-credentials:包括用于额外索引的凭据

    env

    管理虚拟环境,具体教程看:https://www.cnblogs.com/poloyy/p/15270670.html

    cache

    与 poetry 缓存交互

    cache list

    列出 poetry 的可用缓存

    build

    打包并构建 python 工程

    publish

    将使用 build 命令生成的包发布到远程存储库(Pypi)

    options

    • --repository (-r):要将包注册到的存储库(默认值:pypi)应与config命令设置的存储库名称匹配
    • --username (-u):访问存储库的用户名
    • --password (-p):访问存储库的密码
    • --dry-run:执行除上传包以外的所有操作
    • --build:先 build 再 pubilish,可以不用执行 poetry build 命令

    config

    编辑 poetry 配置项,具体可看:https://www.cnblogs.com/poloyy/p/15269573.html

  • 相关阅读:
    linux下使用脚本自动登录远程服务器 Python language ITeye论坛
    Orbix Programmer's Guide Java Edition
    Automating Capistrano Password Prompts with Expect
    pythondaemon 1.5.5
    linux 技巧:使用 screen 管理你的远程会话
    python daemon
    Jsvc
    Running Java applications as daemon on Debian Linux
    How to run a Java Program as a daemon (service) on Linux (openSUSE) using a shell script
    对话 UNIX: 使用 Screen 创建并管理多个 shell
  • 原文地址:https://www.cnblogs.com/poloyy/p/15267595.html
Copyright © 2020-2023  润新知