日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 包管理之 poetry

發布時間:2023/12/20 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 包管理之 poetry 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

poetry是一個Python虛擬環境和依賴管理的工具。poetry和pipenv類似,另外還提供了打包和發布的功能。

官方文檔:python-poetry.org/docs/

python項目部署:poetry管理本地環境,上線用docker

poetry 安裝

poetry提供多種安裝方式,個人推薦從以下2種方式中選擇:

方式一:(推薦)

$ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python

方式二:(pip)

$ pip install --user poetry

安裝完成之后,將腳本路徑添加到 環境變量中,添加完成之后,可在終端輸入命令: poetry --version 來確認是否安裝配置完成。

工程初始化

新工程

如果當前還沒有創建工程,可以使用poetry新建工程:

輸入poetry new來創建一個項目腳手架,包括基本結構、pyproject.toml文件。

$ poetry new poetry-demo

這時候,會創建一個包含如下內容的工程

poetry-demo ├── pyproject.toml # 使用此文件管理依賴列表和項目的各種meta信息,用來替代 Pipfile、requirements.txt、setup.py、setup.cfg、MANIFEST.in 等等各種配置文件 ├── README.rst ├── poetry_demo # 項目目錄 │ └── __init__.py └── tests ├── __init__.py └── test_poetry_demo.py

已有工程

在已有的項目使用poetry,只需要執行 poetry init 命令來創建一個pyproject.toml文件

$ poetry init

這時候,它會讓你輸入包名稱、版本號等信息,你可以選擇輸入,也可以選擇按下ENTER鍵使用默認值,完成以后,pyproject.toml如以下格式:

name = "poetry-demo" version = "0.1.0" description = "" authors = ["lepeng"][tool.poetry.dependencies] python = "*"[tool.poetry.dev-dependencies] pytest = "^3.4"

依賴包管理

安裝依賴包: poetry install

可以使用install命令直接解析并安裝 pyproject.toml 的依賴包

$ poetry install

將依賴包添加到pyproject.toml文件中,同時安裝它們: poetry add

$ poetry add numpy

還可以,通過添加配置參數–dev來區分不同環境下的依賴包。

  • poetry add flask:安裝最新穩定版本的flask
  • poetry add pytest --dev: 指定為開發依賴,會寫到pyproject.toml中的[tool.poetry.dev-dependencies]區域
  • poetry add flask=2.22.0: 指定具體的版本
  • poetry install: 安裝pyproject.toml文件中的全部依賴
  • poetry install --no-dev:只安裝非development環境的依賴,一般部署時使用

更新所有鎖定版本的依賴包: poetry update

$ poetry update

更新指定依賴包

$ poetry update numpy

卸載依賴包: poetry remove

$ poetry remove numpy

查看可以更新的依賴: poetry show

$ poetry show --outdated

查看項目安裝的依賴: poetry show

$ poetry show

樹形結構查看項目安裝的依賴

$ poetry show -t

執行python命令 poetry run

$ poetry run python -V 主要用來執行python命令,會將run之后的命令放到python環境執行。
$ poetry run python app.py 運行Python腳本

將python文件打包 poetry build

主要用來將python文件打包,打包之后的產物有兩種包的格式:sdist是源碼格式;wheel是編譯之后的格式。

$ poetry build

將用build命令打包完成的產物上傳到PyPI上:poetry publish

配置正確的賬號和用戶名,這樣才可以正常上傳

$ poetry config http-basic.pypi username password
$ poetry publish

假如你們公司有自己的私有倉庫,則可以通過如下方式上傳:
先配置私有倉庫的信息,然后再上傳

$ poetry config repositories.foo https://foo.bar/simple/
$ poetry config http-basic.foo username password
$ poetry publish -r my-repository

虛擬環境管理

創建虛擬環境

創建虛擬環境有2種方式:

方式1:

如果在配置文件中配置了virtualenvs.create=true,執行 poetry install 或 poetry add 時會檢查是否有虛擬環境,否則會自動創建。

這里一個問題就是:如果系統中既有Python2又有Python3,且項目既支持Python2也支持Python3,那poetry會優先使用Python2。

方式2:利用 poetry env use 創建

指定創建虛擬環境時使用的Python解釋器版本
$ poetry env use python3.7

激活虛擬環境
$ poetry shell

查看虛擬環境信息
$ poetry env info

顯示虛擬環境列表
$ poetry env list

顯示虛擬環境絕對路徑
$ poetry env list --full-path

刪除虛擬環境
$ poetry env remove python3.7

查看python版本
$ poetry run python -V

poetry config 配置文件: config.toml

poetry提供了全局config配置和特定項目的config配置。

  • windows下的全局config配置文件:C:\Users\fenglepeng\AppData\Roaming\pypoetry\config.toml
  • macOS下的全局config配置文件:/Users/fenglepeng/Library/Application Support/pypoetry/config.toml

目前poetry支持的參數有:

name注釋
cache-dirpoetry使用的緩存目錄的路徑默認值: macOS: ~/Library/Caches/pypoetry Windows: C:\Users\Appdata\Local\pypoetry\Cache Unix: ~/.cache/pypoetry
virtualenvs.create默認值為true,如果執行 poetry install/poetry add時沒有虛擬環境,就自動創建一個虛擬環境,設置為false的話,當虛擬環境不存在時,會將包安裝到系統環境** **
virtualenvs.in-project默認值為false,設置為true的話,會在當前項目目錄下創建虛擬環境
virtualenvs.path虛擬環境的路徑,默認路徑 {cache-dir}\virtualenvs
repositories.設置新的備用存儲庫,具體的參數待確定

也可以使用 poetry config 命令: poetry config ,key就是表格內的參數名,value就是參數要配置的值。

本地參數配置

可以在poetry config后加 -local來配置當前項目。

poetry config virtualenvs.create false --local

執行后,當前項目在執行poetry install/poetry add時如果沒有虛擬環境的話就會直接安裝到系統路徑上。

執行后,會在當前項目生成poetry.toml文件,全局配置config.toml文件不受影響:

全局配置

poetry config virtualenvs.create false

這里只是示范使用,virtualenvs.create這個參數其實基本不用修改,保留原值就好。

重置配置

poetry config的 -unset就是用來重置配置的,如果是重置全局配置:

poetry config virtualenvs.create --unset

如果是重置項目配置:

poetry config virtualenvs.create --local --unset

查看項目下的poetry.toml文件,可以看到值被重置了。

列出當前配置

列出當前項目的配置可以使用: poetry config --list

這里需要注意,列出配置時,包括了全局和本地的配置,本地的配置會覆蓋全局的參數:

舉例:virtualenvs.create全局為true,本地為false,那這里 virtualenvs.create=false

總結

以上是生活随笔為你收集整理的Python 包管理之 poetry的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。