如何在 Fedora 上使用 Poetry 来管理你的 Python 项目?
Python 开发人员经常创建一个新的虚拟环境来分离项目依赖,然后用 pip、pipenv 等工具来管理它们。Poetry 是一个简化 Python 中依赖管理和打包的工具。这篇文章将向你展示如何在 Fedora 上使用 Poetry 来管理你的 Python 项目。
与其他工具不同,Poetry 只使用一个配置文件来进行依赖管理、打包和发布。这消除了对不同文件的需求,如 Pipfile、MANIFEST.in、setup.py 等。这也比使用多个工具更快。
下面详细介绍一下开始使用 Poetry 时使用的命令。
在 Fedora 上安装 Poetry如果你已经使用 Fedora 32 或以上版本,你可以使用这个命令直接从命令行安装 Poetry:
$ sudo dnf install poetry
编者注:在 Fedora Silverblue 或 CoreOs上,Python 3.9.2 是核心提交的一部分,你可以用下面的命令安装 Poetry:
rpm-ostree install poetry初始化一个项目
使用 new 命令创建一个新项目:
$ poetry new poetry-project
用 Poetry 创建的项目结构是这样的:
├── poetry_project │ └── init.py ├── pyproject.toml ├── README.rst └── tests ├── init.py └── test_poetry_project.py
Poetry 使用 pyproject.toml 来管理项目的依赖。最初,这个文件看起来类似于这样:
[tool.poetry] name = "poetry-project" version = "0.1.0" description = "" authors = ["Kadermiyanyedi kadermiyanyedi@hotmail.com "] [tool.poetry.dependencies] python = "^3.9" [tool.poetry.dev-dependencies] pytest = "^5.2" [build-system] requires = ["poetry =0.12"] build-backend = "poetry.masonry.api"
这个文件包含 4 个部分:
第一部分包含描述项目的信息,如项目名称、项目版本等。 第二部分包含项目的依赖。这些依赖是构建项目所必需的。 第三部分包含开发依赖。 第四部分描述的是符合 PEP 517 的构建系统。如果你已经有一个项目,或者创建了自己的项目文件夹,并且你想使用 Poetry,请在你的项目中运行 init 命令。
$ poetry init
在这个命令之后,你会看到一个交互式的 shell 来配置你的项目。
创建一个虚拟环境如果你想创建一个虚拟环境或激活一个现有的虚拟环境,请使用以下命令:
$ poetry shell
Poetry 默认在 /home/username/.cache/pypoetry 项目中创建虚拟环境。你可以通过编辑 Poetry 配置来更改默认路径。使用下面的命令查看配置列表:
$ poetry config --list cache-dir = "/home/username/.cache/pypoetry" virtualenvs.create = true virtualenvs.in-project = true virtualenvs.path = "{cache-dir}/virtualenvs"
修改 virtualenvs.in-project 配置变量,在项目目录下创建一个虚拟环境。Poetry 命令是:
$ poetry config virtualenv.in-project true
使用 poetry add 命令为项目安装一个依赖:
$ poetry add django
你可以使用带有 --dev 选项的 add 命令来识别任何只用于开发环境的依赖:
$ poetry add black --dev
add 命令会创建一个 poetry.lock 文件,用来跟踪软件包的版本。如果 poetry.lock 文件不存在,那么会安装 pyproject.toml 中所有依赖项的最新版本。如果 poetry.lock 存在,Poetry 会使用文件中列出的确切版本,以确保每个使用这个项目的人的软件包版本是一致的。
使用 poetry install 命令来安装当前项目中的所有依赖:
$ poetry install
通过使用 --no-dev 选项防止安装开发依赖:
$ poetry install --no-dev列出软件包
show 命令会列出所有可用的软件包。--tree 选项将以树状列出软件包:
$ poetry show --tree django 3.1.7 A high-level Python Web framework that encourages rapid development and clean, pragmatic design. ├── asgiref =3.2.10, 4 ├── pytz * └── sqlparse =0.2.2
包含软件包名称,以列出特定软件包的详细信息:
$ poetry show requests name : requests version : 2.25.1 description : Python HTTP for Humans. dependencies - certifi =2017.4.17 - chardet =3.0.2, 5 - idna =2.5, 3 - urllib3 =1.21.1, 1.27
最后,如果你想知道软件包的最新版本,你可以通过 --latest 选项:
$ poetry show --latest idna 2.10 3.1 Internationalized Domain Names in Applications asgiref 3.3.1 3.3.1 ASGI specs, helper code, and adapters
Poetry 的更多详情可在文档中获取。
via: https://fedoramagazine.org/how-to-use-poetry-to-manage-your-python-projects-on-fedora/
作者:Kader Miyanyedi 选题:lujun9972 译者:geekpi 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/50142.html
Fedoralinuxpythonshell相关文章
- Python获取时间戳_python爬虫时间戳
- pycharm打包python项目_Python怎么打包
- centos7使用nginx+uwsgi部署python django项目
- mt4 python_一个使用Python自动化交易外汇MT4脚本实现「建议收藏」
- python十进制转换_Python 进制转换
- python删除首行_Python删除文件第一行
- python中关于命名的例子_Python 命名规范入门实例「建议收藏」
- 【说站】python协程函数如何执行
- Python实现自动回复_python 微信机器人
- python django 数据库_Apache+Mysql+PHP/Python简单项目
- python设置时间过期改变状态_Python Redis设置过期时间「建议收藏」
- 正则表达式Python_python正则表达式匹配字符串
- python使用opencv如何保存图片_OpenCV Python 保存图片
- eval在python中是什么意思_如何在Python中使用eval ?
- 【测试开发】python系列教程:Python注释和解释器
- Python 小型项目大全 76~81
- python-Python与SQLite数据库-使用Python执行SQLite查询(二)
- python-Python与PostgreSQL数据库-使用Python执行PostgreSQL查询(二)
- Python 基于python实现的http+json协议接口自动化测试框架源码(实用改进版)详解编程语言
- 使用Python操作MySQL数据库快速上手(python访问mysql数据库)
- Linux下使用Python开发体验之旅(linux使用python)
- 使用Python连接SQL Server数据库(python连接sqlserver数据库)
- 使用Python连接SQL Server数据库(python连接sqlserver)
- 在Linux上运行Python脚本的简单指南(linux运行python)
- Python如何使用MySQL构建立连接(python怎么连接mysql)
- Linux下从系统卸载Python(linux下卸载python)
- Python中使用MySQL数据库的操作技巧(mysql_python)
- python生成日历实例解析