Python依賴管理及打包工具Poetry使用規範

2022-09-25 02:00:09 字數 2160 閱讀 5467

目錄

可以以各種形式指定專案的依賴項,取決於依賴項的型別以及安裝專案可能需要的可選約束

^ 約束

編寫規範

允許的版本範圍

^1.2.3

>=1.2.3 <2.0.0

^1.2

>=1.2.0 <2.0.0

^1>=1.0.0 <2.0.0

^0.2.3

>=0.2.3 <0www.cppcns.com.3.0

^0.0.3

>=0.0.3 <0.0.4

^0.0

>=0.0.0 <0.1.0

^0>=0.0.0 <1.0.0

~ 約束

編寫規範

允許的版本範圍

~1.2.3

>=1.2.3 <1.3.0

~1.2

>=1.2.0 <1.3.0

~1>=1.0.0 <2.0.0

和上面的 ^ 差不多,不過這個是次要版本,以第二個數字為基準

* 約束

有點像萬能匹配符,寫在**都可以

編寫規範

允許的版本範圍

*>=0.0.0

1.*>=1.0.0 <2.0.0

1.2.*

>=1.2.0 <1.3.0

比較符就常規的>、< 符號了

>= 1.2.0

> 1

< 2

!= 1.2.3

確定的版本號或範圍

>= 1.2,< 1.5

可以指定依賴項的 git 倉庫位址

[tool.poetry.dependencies]

requests =

缺省會拉 git 倉庫的 master 分支

也可以指定 branch、commit hash、tag

[tool.poetry.dependencies]

# get the latest revision on the branch named "next"

requests =

# get a revision by its commit hash

flask =

# get a reviswhhkmwhgfcion by its tag

numpy =

如果依賴項位於本地目錄,可以用 path

[tool.poetry.dependencies]

# directory

my-package =

# file

my-package =

如果依賴遠端倉庫的檔案,可以用 url

[tool.poetry.dependencies]

# directory

my-package =

可以通過 poetry add 來新增 url

poetry add

指定僅應該以特定 python 版本安裝依賴項

[tool.poetry.dependencies]

pathlib2 =

[tool.poetry.dependencies]

pathlib2 =

多個限制

假設依賴包

版本小於等於 1.9 的時候,只能和 python 2.7 到 python 2.9 版本相容

版本大於 2.0 的時候,只能和 python 3.4 + 版本相容

[tool.poetry.dependencies]

foo = [,]

感覺比較少用,暫時不展開詳解

[tool.poetry.dependencies]

pathlib2 =

markers 官方文件:

當某個依賴項需要新增很多屬性的時候,可讀性就很差,如下

[tool.poetry.dev-dependencies]

black =

使用新的語法格式

[tool.poetry.dev-dependencies.black]

version = "19.10b0"

allow-prereleases = true

python = "^3.6"

markers = "platform_python_implementation == 'cpython'"

依賴項的約束完全一樣,只不過變成一行乙個約束屬性,可讀性更強

python打包工具比較

前一段用python寫了點小工具,希望能給同事用,這裡總結一下python的打包以及構建的方法。首先是一些需要安裝依賴包的方法,這也是比較推薦的正統的方法。在setup.py檔案中寫明依賴的庫和版本,注意需要提前安裝setuptools,然後執行 python setup.py install檔案大...

Python打包工具比較

solution windows linux os x python 3 license one file mode zipfile import eggs pkg resources support bbfreeze yesyes yesno mitno yesyes yespy2exe yesn...

python打包工具pyinstaller的用法

pyinstaller是乙個很好用的python打包工具,在windows環境下可以將python指令碼打包成乙個exe可執行檔案,並且指令碼中所依賴的各種第三方庫在打包時候都會被統一處理到一起,這樣打包成的exe檔案就可以在沒有安裝這些庫的電腦上執行,甚至也可以在沒有安裝任何python環境的電腦...