信息发布→ 登录 注册 退出

Poetry new 命令行为变更:项目初始化不再自动生成测试文件

发布时间:2025-11-26

点击量:

Poetry new 命令行为变更:项目初始化不再自动生成测试文件

poetry的`new`命令自2025年4月起已变更其项目初始化行为。现在,执行`poetry new`不再自动创建`test_*.py`测试文件,并且`__init__.py`文件默认为空。这一变化旨在提供更灵活的初始化方式,开发者应参照最新官方文档,并根据项目需求手动配置测试结构,以确保项目遵循最新的最佳实践。

Poetry new 命令行为变更详解

Poetry作为一款现代化的Python依赖管理和项目打包工具,以其简洁高效的特性受到了广大开发者的青睐。然而,随着其版本的迭代,某些默认行为也发生了变化。其中一个显著的改变是关于poetry new命令在项目初始化时对测试文件和__init__.py文件的处理。

在此前的版本中,当开发者使用poetry new 命令创建一个新的Poetry项目时,它会自动生成一个基本的测试文件(例如tests/test_.py)以及非空的__init__.py文件。这一设计旨在为新项目提供一个即开即用的测试结构。

然而,自2025年4月起,Poetry的这一默认行为已被修改。此项变更(具体可追溯到此提交)旨在提供更灵活的项目初始化方式。现在,执行poetry new命令后:

  1. 不再自动创建测试文件: 项目根目录下的tests/文件夹(如果存在)将不再包含自动生成的test_.py文件。
  2. __init__.py文件默认为空: 在项目包目录(例如rp_poetry/)及其子目录中生成的__init__.py文件将是空的,不再包含版本信息或其他默认内容。

这一变化意味着Poetry在项目初始化时更加“轻量化”和“不干预”,将测试结构的搭建和__init__.py文件的具体内容留给开发者根据实际需求自行决定。

如何正确初始化和配置新项目

鉴于上述行为变更,开发者在初始化Poetry项目时应注意以下几点:

1. 使用 poetry new 初始化项目

首先,像往常一样使用poetry new命令创建新项目:

poetry new my-new-project

执行此命令后,my-new-project的目录结构将如下所示:

my-new-project/
├── pyproject.toml
├── README.md
├── my_new_project/
│   └── __init__.py  # 此文件将为空
└── tests/
    └── __init__.py  # 此文件将为空

可以看到,tests/目录下没有自动生成的测试文件。

美图云修 美图云修

商业级AI影像处理工具

美图云修 50 查看详情 美图云修

2. 手动配置测试环境

如果项目需要测试,开发者需要手动创建测试文件并配置测试框架(如pytest)。

步骤示例:

  1. 安装测试框架: 通常,pytest是一个流行的选择。通过Poetry将其添加到开发依赖中:

    cd my-new-project
    poetry add pytest --group dev

    或者在pyproject.toml中手动添加:

    [tool.poetry.group.dev.dependencies]
    pytest = "^7.0" # 根据需要选择版本

    然后运行 poetry install。

  2. 创建测试文件: 在tests/目录下手动创建测试文件,例如tests/test_example.py:

    # tests/test_example.py
    from my_new_project import __version__
    
    def test_version():
        assert __version__ == "0.1.0" # 假设你在pyproject.toml中定义了版本
  3. 运行测试: 使用Poetry运行测试:

    poetry run pytest

3. __init__.py 文件处理

对于__init__.py文件,如果需要定义包的版本或其他元数据,应手动添加。例如,在my_new_project/__init__.py中:

# my_new_project/__init__.py
__version__ = "0.1.0"

这与Poetry早期版本自动填充版本号的行为不同,现在需要开发者自行管理。

注意事项与最佳实践

  • 查阅最新文档: 鉴于Poetry的快速发展,强烈建议开发者始终查阅官方最新文档。旧教程(尤其是2025年4月之前的教程)可能包含过时的信息。
  • 版本控制: 将pyproject.toml、poetry.lock以及所有源代码和测试文件纳入版本控制,以确保团队成员之间的一致性。
  • 灵活性: 尽管不再自动生成测试文件,但这为开发者提供了更大的灵活性,可以根据项目的具体需求和偏好(例如使用unittest而不是pytest,或采用不同的测试文件命名约定)来构建测试结构。
  • 项目结构规范: 尽管Poetry不再强制,但遵循Python社区普遍接受的项目结构规范(如将测试放在tests/目录中)仍然是良好的实践。

总结

Poetry new 命令的行为变更是一项旨在提升工具灵活性的设计决策。开发者现在需要更加主动地配置项目的测试环境和__init__.py文件内容。通过理解这些变化并遵循最新的官方文档和最佳实践,可以确保您的Poetry项目始终保持健康、高效且易于维护。

以上就是Poetry new 命令行为变更:项目初始化不再自动生成测试文件的详细内容,更多请关注其它相关文章!


相关文章: Descript怎样用AI剪辑自动去噪_Descript用AI剪辑自动去噪【自动降噪】  一加 Nord 5 隐私权限异常_一加 Nord 5 系统安全优化  Python中高效访问嵌套字典与列表中的键值对  PHP教程:将数据库查询结果动态展示到HTML Textarea的最佳实践  J*a递归快速排序中静态变量的状态管理与陷阱  excel怎么制作工资条 excel快速生成工资条的方法  c++如何实现一个简单的软件渲染器_c++从零开始的3D图形学  凉拌黄瓜怎么拌更入味 凉拌黄瓜简单家常做法  win11跳过OOBE三种方法 Win11跳过OOBE设置步骤  12306几点到几点不能订票? | 官方最新系统维护时间全解析  怎样在Excel中做仪表盘_Excel仪表盘设计与关键指标展示方法  天猫2025双十一0点秒杀攻略 天猫爆款抢购时间  KFC游戏互动怎么赢取优惠券_KFC线上游戏活动参与与优惠代码赢取教程  Win10快速启动功能利弊分析 Win10开启或关闭快速启动教程【技巧】  qq音乐在线播放入口_qq音乐电脑版登录链接  Safari浏览器输入栏卡顿如何解决 Safari搜索建议与缓存清理  steam官方入口大全 steam账号注册及操作指南  C++如何操作注册表_Windows平台下C++读写注册表的API函数详解  在J*a中如何捕获IndexOutOfBoundsException_索引越界异常防护方法说明  魅族17怎样用浏览器译外语网页_iPhone魅族17浏览器译外语网页【即时翻译】  网易大神账号申诉需要多久_网易大神账号申诉流程说明  极速漫画官方主页网址 极速漫画漫画在线浏览官网链接  在Runstone环境中高效处理TasteDive API的JSON数据  CSS自定义字体样式被系统字体替换怎么办_font-face方式指定font-display控制渲染策略  如何让 composer 信任自签名的 HTTPS 证书源?  sublime侧边栏怎么增强功能_SideBarEnhancements for sublime安装与配置  mysql如何设置表访问权限_mysql表访问权限配置  提升屏幕阅读器对“m”时间单位的播报准确性:HTML与CSS组合解决方案  QQ邮箱官方网站登录入口_QQ邮箱网页版在线使用  使用 Pandas 高效处理 .dat 文件:数据清洗与数值计算实战  韩剧圈正版入口页面_韩剧圈官网登录链接  将JSON对象数组转置为键值对列表的实用指南  Golang如何通过reflect获取匿名字段方法_Golang reflect匿名字段方法访问技巧  解决Bootstrap卡片顶部边距导致背景图下移的问题  Fabric Mod开发:在1.19.3+版本中正确添加自定义物品并管理物品组  PowerPoint如何制作滚动字幕结尾彩蛋_PowerPoint路径动画实现平滑滚动字幕效果  腾讯视频怎么使用多账号家庭管理_腾讯视频家庭多账号统一管理与权限分配教程  Steam官网入口直达 Steam注册及登录步骤  解决Flask中Quill编辑器内容提交失败及TypeError的指南  Yandex官方入口网址 Yandex俄罗斯搜索引擎最新在线地址  谷歌google账号怎么注册账号 谷歌账号注册官方流程  XML中包含HTML标签导致解析错误? 正确嵌入非XML数据的两种方法  Fabric模组开发:自定义物品与物品组的现代管理方法  谷歌浏览器如何快速清除某个网站的数据_Chrome网站缓存清理方法  Pandas DataFrame:高效添加条件计算列  Python vgamepad库按键模拟:正确使用XUSB_BUTTON常量  响应式容器内容自动缩放与宽高比维持教程  AO3官网镜像链接 Archive of Our Own同人文在线浏览  word邮件合并后日期格式不对怎么改_Word邮件合并日期格式修改方法  Composer如何在生产环境安全地执行composer update 

在线客服
服务热线

服务热线

4008988990

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!