亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 pyproject.toml 中指定命令行腳本

在 pyproject.toml 中指定命令行腳本

縹緲止盈 2023-05-09 14:48:39
我正在嘗試將 pyproject.toml 添加到一直在使用 setup.py 的項目中,以便啟用 pipx 的支持。我想指定項目包含在 pyproject.toml 中的命令行腳本,但我能找到的所有指南都提供了詩歌的使用說明,我沒有使用。我也不想指定模塊的入口點——我已經有了可用的命令行腳本,只想指定它們。pyproject.toml 中是否有適當的位置來指定命令行腳本?不確定這是否重要,但有問題的包裹是cutlet。
查看完整描述

2 回答

?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

2022 年 7 月更新:如果您的 TOML 文件使用 setuptools 作為其構建系統,setuptools 將愉快地創建和安裝命令行腳本。例如,我的pyproject.toml文件是這樣開頭的:


[build-system]

requires = ["setuptools>=61.0"]

build-backend = "setuptools.build_meta"

pyproject.toml使用這樣的條目擴展您的文件,命名包、模塊和入口點函數名稱:


[project.scripts]

my-client = "my_package.my_module:main_cli"

然后運行安裝序列:


pip3 install .

setuptools 將在我的 Py3.9 虛擬環境的 bin 目錄 (~/.virtualenvs/py39/bin) 中為我安裝一個在適當位置命名的 shell 腳本my-client。


我在做類似的事情,升級一個有 的包setup.py,雖然我沒有現有的腳本。重寫為 usingpyproject.toml我完全刪除了舊setup.py文件。


FWIW 我意識到 OP 要求安裝現有腳本的方法,但我沒有提供。這個答案告訴 setuptools 創建和安裝新腳本。


2023 年 2 月更新:感謝所有投票。如果您正在偷工減料以滿足任意管理截止日期,只需復制粘貼此短pyproject.toml文件并進行調整:


[build-system]

requires = ["setuptools>=61.0"]

build-backend = "setuptools.build_meta"


[project]

name = "my_client"

version = "1.2.3"

authors = [{name="Ubr Programmer", email="[email protected]" }]

description = "Client for my awesome system"

readme = "README.md"

dependencies = ["cachetools","requests"]

requires-python = ">=3.9"


[project.scripts]

my-client = "my_package.my_module:main_cli"


[project.urls]

"Homepage" = "https://github.com/your_name_here/something"

"Bug Tracker" = "https://github.com/your_name_here/something/issues"


查看完整回答
反對 回復 2023-05-09
?
青春有我

TA貢獻1784條經驗 獲得超8個贊

pyproject.toml 中是否有適當的位置來指定命令行腳本?

PEP566?(Metadata 2.1) 只定義了Core metadata specifications。因此,答案取決于您的構建系統(注意:PEP518 定義了構建系統概念)。

如果您使用現有的構建工具,例如setuptools、poetryflit,您只能考慮在pyproject.toml中添加此類選項,前提是該工具支持pyproject.toml中的命令行腳本 (?console_scripts)。當然,如果你有自己的構建工具,你需要實現一個解析器來解析pyproject.toml中的命令行腳本。

最后,您可以查看以下列表以了解哪些主要構建系統支持pyproject.toml中的命令行腳本 (?console_scripts)?(2020/Oct):

  • 設置工具:根據PEP621尚未實施

  • poetry:是的,這是實現的一部分。

  • flit:是的。


查看完整回答
反對 回復 2023-05-09
  • 2 回答
  • 0 關注
  • 569 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號