poetry add boto3
就能添加依赖,poetry show --tree
显示出依赖树 。看下如何安装及创建一个项目
$ pip install poetry
$ poetry new sample
它创建的项目比上面都简单
$ tree sample
sample
├── README.rst
├── pyproject.toml
├── sample
│ └── __init__.py
└── tests
├── __init__.py
└── test_sample.py
如果给poetry new
带上--src
参数,那么源文件目录sample
会放在src
目录下,即sample/src/sample
.
poetry init
会在当前目录中生成pyproject.toml
文件,目录等的生成需手动完成 。
它不
pyproject.toml
有些类似 NodeJS 的package.json
文件,比如 poetry add, poetry install 命令的行
# 往 pyproject.toml 中添加对 boto3 的依赖并安装(add 还能从本地或 git 来安装依赖 ),
poetry add boto3
# 将依照 pyproject.toml 文件中定义安装相应的依赖到当前的 Python 虚拟环境中
# 比如在 <test-venv>/lib/python3.9/site-packages 目录中,安装好模块后也可让测试用例使用
poetry install
其他主要的
1. poetry build # 构建可安装的 *.whl 和 tar.gz 文件
2. poetry shell # 会根据定义在 pyproject.toml 文件中的依赖创建并使用虚拟环境
3. poetry run pytest # 运行使用 pytest 的测试用例,如 tests/test_sample.py
4. poetry run python -m unittest tests/sample_tests.py # 运行 unittest 测试用例
5. poetry export --without-hashes --output requirements.txt # 导出 requirements.txt 文件, --dev 导出含 dev 的依赖,或者用 poetry export --without-hashes > requirements.txt
poetry run
能执行任何系统命令,只是它会在它要的虚拟环境中执行 。所以可以想见,poetry
的项目要生成文档或覆盖率都必须用poetry run ...
命令来支持sphinx
,coverage
或flake8
。
在 sample 目录(与 pyproject.toml 文件平级)中创建文件my_module.py
, 内容为
def main:
print('hello poetry')
然后在pyproject.toml
中写上
[tool.poetry.scripts]
my-script="sample.my_module:main"
再执行
$ poetry run my-script
就会输出 "hello poetry" 。
通过对以上四个工具的认识,项目结构的复杂度由 cookiecutter-pyproject -> PyScaffold -> PyBuilder -> Poetry 依次降低,使用的难度大略也是相同的顺序 。
参考链接
- Set up tests, linters and type checking in Python projects in 2020 (https://medium.com/@cristobalcl/set-up-tests-linters-and-type-checking-in-python-projects-in-2020-9cc1b1e2750d) (介绍了 poetry 项目如何支持 coverage, lint 和 type checking)
- Dependency management tools for Python (https://snyk.io/blog/dependency-management-tools-python/)
推荐阅读
- 30万左右7座SUV那个好 30万左右7座suv汽车大全
- 246天天免费资料大全+正版246期期准12期3362 246天天好免费资料大全首页一
- 大家最喜欢的网络文学作品都是什么?
- 中韩翻译器在线翻译中韩翻译器拍照扫一扫
- 温江卡奇乐儿童亲子乐园 南宁卡奇乐亲子乐园
- 北京全路通信信号研究设计院_全路通信信号研究设计院如何
- 有没有一觉醒来竟穿成虐文女主的小说推荐?
- 遥控器组合机械舞,遥控器组合键怎么解锁
- 断舍断舍离经典语录 断舍离经典语录100条