- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Python依赖管理及打包工具Poetry使用规范由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
可以以各种形式指定项目的依赖项,取决于依赖项的类型以及安装项目可能需要的可选约束 。
编写规范 | 允许的版本范围 |
---|---|
^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 <0.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
3
4
|
>= 1.2.0
> 1
< 2
!= 1.2.3
|
确定的版本号或范围 。
1
|
>= 1.2,< 1.5
|
可以指定依赖项的 git 仓库地址 。
1
2
|
[tool.poetry.dependencies]
requests
=
{ git
=
"https://github.com/requests/requests.git"
}
|
默认会拉 git 仓库的 master 分支 。
也可以指定 branch、commit hash、tag 。
1
|
[tool.poetry.dependencies]<br>
# Get the latest revision on the branch named "next"<br>requests = { git = "https://github.com/kennethreitz/requests.git", branch = "next" }<br># Get a revision by its commit hash<br>flask = { git = "https://github.com/pallets/flask.git", rev = "38eb5d3b" }<br># Get a revision by its tag<br>numpy = { git = "https://github.com/numpy/numpy.git", tag = "v0.13.2" }
|
如果依赖项位于本地目录,可以用 path 。
1
2
3
4
5
6
|
[tool.poetry.dependencies]
# directory
my
-
package
=
{ path
=
"../my-package/"
, develop
=
false }
# file
my
-
package
=
{ path
=
"../my-package/dist/my-package-0.1.0.tar.gz"
}
|
如果依赖远程仓库的文件,可以用 url 。
1
2
3
|
[tool.poetry.dependencies]
# directory
my
-
package
=
{ url
=
"https://example.com/my-package-0.1.0.tar.gz"
}
|
可以通过 poetry add 来添加 url 。
1
|
poetry add https://example.com/my-package-0.1.0.tar.gz
|
指定仅应该以特定 Python 版本安装依赖项 。
1
2
|
[tool.poetry.dependencies]
pathlib2
=
{ version
=
"^2.2"
, python
=
"~2.7"
}
|
1
2
|
[tool.poetry.dependencies]
pathlib2
=
{ version
=
"^2.2"
, python
=
"~2.7 || ^3.2"
}
|
假设依赖包 。
版本小于等于 1.9 的时候,只能和 Python 2.7 到 Python 2.9 版本兼容 。
版本大于 2.0 的时候,只能和 Python 3.4 + 版本兼容 。
1
2
3
4
5
|
[tool.poetry.dependencies]
foo
=
[
{version
=
"<=1.9"
, python
=
"^2.7"
},
{version
=
"^2.0"
, python
=
"^3.4"
}
]
|
感觉比较少用,暂时不展开详解 。
1
2
|
[tool.poetry.dependencies]
pathlib2
=
{ version
=
"^2.2"
, markers
=
"python_version ~= '2.7' or sys_platform == 'win32'"
}
|
markers 官方文档:https://www.python.org/dev/peps/pep-0508/#environment-markers 。
当某个依赖项需要添加很多属性的时候,可读性就很差,如下 。
1
2
|
[tool.poetry.dev
-
dependencies]
black
=
{version
=
"19.10b0"
, allow
-
prereleases
=
true, python
=
"^3.6"
, markers
=
"platform_python_implementation == 'CPython'"
}
|
使用新的语法格式 。
1
2
3
4
5
|
[tool.poetry.dev
-
dependencies.black]
version
=
"19.10b0"
allow
-
prereleases
=
true
python
=
"^3.6"
markers
=
"platform_python_implementation == 'CPython'"
|
依赖项的约束完全一样,只不过变成一行一个约束属性,可读性更强 。
以上就是Python依赖管理及打包工具Poetry依赖规范的详细内容,更多关于Python工具poetry依赖规范的资料请关注我其它相关文章! 。
原文链接:https://blog.csdn.net/qq_33801641/article/details/120320778 。
最后此篇关于Python依赖管理及打包工具Poetry使用规范的文章就讲到这里了,如果你想了解更多关于Python依赖管理及打包工具Poetry使用规范的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
Poetry 有一个非常好的版本求解器,有时太好了 :) 我试图在一个使用两个不兼容包的项目中使用诗歌。然而,它们仅通过声明不兼容,因为其中之一不再开发,否则它们一起工作就好了。 使用 pip 我可以
我的问题: Python工具Poetry如何知道一个项目的虚拟环境的路径? 说明: 当我在目录中运行 poetry init 时,会创建一个新项目。然后我运行 poetry install 并创建一个
使用 Poetry,我想找到可用于安装的特定软件包的所有版本。有可能实现吗? (类似于 Python and pip, list all versions of a package that's av
我最近安装了 Pyenv 和 Poetry,想创建一个新的 Python 3.8 项目。我已经设置了 global和 local python 版本到 3.8.1使用适当的 Pyenv 命令(例如 p
将 [tool.poetry.extras] 部分添加到 pyproject.toml 后,Poetry 会显示以下警告,例如在安装时: Warning: The lock file is not u
如何升级到最新版本? 规范: Windows 10, Visual Studio 代码, Ubuntu Bash。 当前版本: me@PF2DCSXD:/mnt/c/Users/user/Docume
vscode-screenshot 我很确定一切都井然有序,但它在运行服务器或刷新服务器(通过保存 python 文件)时不断显示这首诗。请帮忙,这很烦人。 最佳答案 Python 之禅打印为 by
有一个简单但令人困惑的问题:当我尝试在模块中使用它时,我用 poetry 添加的包无法导入。采取的步骤: 诗歌添加sendgrid 在模块中,import sendgrid 错误: 导入“sendgr
vscode-screenshot 我很确定一切都井然有序,但它在运行服务器或刷新服务器(通过保存 python 文件)时不断显示这首诗。请帮忙,这很烦人。 最佳答案 Python 之禅打印为 by
有一个简单但令人困惑的问题:当我尝试在模块中使用它时,我用 poetry 添加的包无法导入。采取的步骤: 诗歌添加sendgrid 在模块中,import sendgrid 错误: 导入“sendgr
Poetry项目是 Python 的依赖管理系统。它使用新的 pyproject.toml文件作为其配置文件。 Poetry 工具支持几种不同的方式来指定您的依赖项的允许版本。 Poetry 依赖项的
管理 Python 环境和依赖关系的工具 venv、virtualenv、pipenv 、poetry 、 miniforge 和 anaconda 的区别 venv、virtualenv、pipe
我正在尝试为我的 poetry 环境安装 Jupyter 内核,但该内核似乎获得了我的基础 conda 环境。这是我正在尝试的: poetry env list >ENV_NAME-HASH-py3.
每当我尝试在 git 存储库中的 powershell 上运行 poetry install 时,我总是收到这个奇怪的错误,我真的不知道那可能是什么。我正在使用 Windows 10 和 Python
我喜欢初始化一个诗歌生成的项目,而无需通过交互式 shell 获取版本和依赖项等。 但是,尝试摆弄命令行选项的几次尝试都失败了。 比如 poetry init --name my_proj --des
我在 VSCode 中使用 Poetry,但在运行时遇到错误 import apache_beam as beam from apache_beam.options.pipeline_options
如果我想开发一个仅适用于 Linux 和 macOS 的 Python 包。如何在 Python Poetry 中指定此限制? 最佳答案 Trove classifiers pyproject.tom
Post-install script with Python setuptools 正是这个问题,但是使用 Poetry 而没有 Setuptools。 我想跑 print('Installatio
macOS Mojave 10.14.6Python 3.7.2 我像文档中那样安装了 python poetry: curl -sSL https://raw.githubusercontent.c
我正在开发一个 python 项目,它使用 pythonnet 和几个 C# dll 作为依赖项。 由于我不想将 dll 推送到 git 存储库,因此我调整了 .gitignore 文件。但是,现在
我是一名优秀的程序员,十分优秀!