<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          poetryPython 依賴管理和打包工具

          聯(lián)合創(chuàng)作 · 2023-09-28 11:36

          poetry 是一個包管理和打包的工具。

          在 Python 中,對于初學者來說,打包系統(tǒng)和依賴管理是非常復雜和難懂的。即使對于經驗豐富的開發(fā)者,一個項目總是要同時創(chuàng)建多個文件: `setup.py` ,`requirements.txt`,`setup.cfg` , `MANIFEST.in` ,還有最新的 `Pipfile`。

          基于此, poetry 將所有的配置都放置在一個 toml 文件中,這些配置包括:依賴管理、構建、打包、發(fā)布。

          poetry 的靈感來自于其他語言的一些工具: composer(PHP) 和 cargo (Rust) 。

          poetry

          配置

          poetry 的項目配置文件是 pyproject.toml ,一個簡單的示例文件如下:

          [tool.poetry]
          name = "poetry"
          version = "0.11.5"
          description = "Python dependency management and packaging made easy."
          authors = [
              "Sébastien Eustace <[email protected]>"
          ]
          license = "MIT"
          
          readme = "README.md"
          
          homepage = "https://poetry.eustace.io/"
          repository = "https://github.com/sdispater/poet"
          documentation = "https://poetry.eustace.io/docs"
          
          keywords = ["packaging", "dependency", "poetry"]
          
          classifiers = [
              "Topic :: Software Development :: Build Tools",
              "Topic :: Software Development :: Libraries :: Python Modules"
          ]
          
          # Requirements
          [tool.poetry.dependencies]
          python = "~2.7 || ^3.4"
          cleo = "^0.6.7"
          requests = "^2.18"
          cachy = "^0.2"
          requests-toolbelt = "^0.8.0"
          jsonschema = "^2.6"
          pyrsistent = "^0.14.2"
          pyparsing = "^2.2"
          cachecontrol = { version = "^0.12.4", extras = ["filecache"] }
          pkginfo = "^1.4"
          html5lib = "^1.0"
          shellingham = "^1.1"
          tomlkit = "^0.4.4"
          
          # The typing module is not in the stdlib in Python 2.7 and 3.4
          typing = { version = "^3.6", python = "~2.7 || ~3.4" }
          
          # Use pathlib2 for Python 2.7 and 3.4
          pathlib2 = { version = "^2.3", python = "~2.7 || ~3.4" }
          # Use virtualenv for Python 2.7 since venv does not exist
          virtualenv = { version = "^16.0", python = "~2.7" }
          
          [tool.poetry.dev-dependencies]
          pytest = "^3.4"
          pytest-cov = "^2.5"
          mkdocs = "^1.0"
          pymdown-extensions = "^4.9"
          pygments = "^2.2"
          pytest-mock = "^1.9"
          pygments-github-lexers = "^0.0.5"
          black = { version = "^18.3-alpha.0", python = "^3.6" }
          pre-commit = "^1.10"
          tox = "^3.0"
          
          
          [tool.poetry.scripts]
          poetry = "poetry.console:main"

          命令

          poetry 提供了一系列覆蓋整個開發(fā)流程的命令,這些命令使用簡單:

          poetry 命令
          名稱 功能
          new  創(chuàng)建一個項目腳手架,包含基本結構、pyproject.toml 文件
          init 基于已有的項目代碼創(chuàng)建 pyproject.toml 文件,支持交互式填寫
          install 安裝依賴庫
          update 更新依賴庫
          add 添加依賴庫
          remove 移除依賴庫
          show 查看具體依賴庫信息,支持顯示樹形依賴鏈
          build 構建 tar.gz 或 wheel 包
          publish 發(fā)布到 PyPI
          run 運行腳本和代碼
          瀏覽 25
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲自拍偷拍视频 | 欧美性爱无码视频 | 必死交尾在线新日韩 | 麻豆综合久久 | 欧美乱伦第一页 |