宝安高端网站设计怎么样,qq钓鱼网站怎么制作,wordpress页面文章,建网站咨询排版#xff1a;Alan Wang Python 凭借其简单的语法和强大的库#xff0c;目前已成为最流行的编程语言之一#xff0c;也是最适合那些刚接触编程的人们的语言。但是#xff0c;随着项目复杂性和规模的增长#xff0c;管理依赖项的复杂性也会增加。当新用户不断承接更成熟的… 排版Alan Wang Python 凭借其简单的语法和强大的库目前已成为最流行的编程语言之一也是最适合那些刚接触编程的人们的语言。但是随着项目复杂性和规模的增长管理依赖项的复杂性也会增加。当新用户不断承接更成熟的项目他们同时也了解了虚拟环境和管理依赖关系的重要性。虽然 Python 中虚拟环境和库管理的好处不可否认但也必须承认它们带来的潜在挑战特别是对初学者。对于那些刚接触 Python 开发的人来说术语、概念和各种可用的工具可能会让人不知所措。
Visual Studio Code 的 Python 扩展设置使用 PythonCreate Environment 命令简化了虚拟环境的创建。此命令可帮助任何技能水平的开发人员创建隔离的环境每个环境都有自己的一组已安装的包和依赖项。我们相信在扩展中对包管理工具的支持方面仍有提高的空间。在高级设置上库管理工具简化了安装包、解析依赖项和处理版本约束的过程。虽然有许多可用的包管理工具但我们想看看在标准 Python 安装中包含的 pip 和 venv 的支持下我们可以走多远。本练习的一部分包括研究流行的库管理工具提供的常见 CLI命令以发现功能的交叉点并确定 pip 和 venv 在哪些方面不提供直接支持。我们希望提供一个工作流程与 PythonCreate Environment 命令来简化包管理。
目标
作为 VS Code 的 Python 扩展的一部分提出并实现一个有主见的工作流程来达到
支持正在使用 Python 包和虚拟环境的初学者。通过环境创建说明简化包管理事项。允许第三方包管理扩展集成到工作流中以提供自己的支持。
当前提案
VS Code 中的 Python 扩展希望通过提供一个工作流程来解决库管理初学者的一个常见误区类似于 PythonCreate Environment 命令中的工作流。但是我们承认没有一种方法可以满足每个用户场景和偏好。最初这些功能主要侧重于帮助处理不需要构建 wheel 文件的脚本、应用程序和项目的初学者。初学者主要关心的是实现成功的执行并确保可重复性。由于 VS Code 的 Python 扩展考虑了我们如何解决这个问题我们希望与社区概述的标准紧密结合但在某些领域选择固执己见。我们将此建议分为两部分进行考虑命令覆盖率和记录用户的依赖关系。与往常一样我们对如何改进和实现这一点持开放态度vscode-python#21627
目前有好几种流行的依赖项和包管理工具可用。在这项研究中我比较了 Pip、Poetry、Hatch、conda、PDM 和 Pipenv CLI 命令以找到它们为包管理提供的功能的交集以及 pip 和 venv 没有提供这些其他工具所具有的直接支持的地方。
我们希望在工作流程中匹配的 CLI 命令覆盖范围
创建/更新依赖项文件从文件读取、解析和安装依赖项更新依赖项删除库添加库并更新依赖项文件创建环境运行代码
记录依赖关系
虽然我们概述了我们希望支持的功能但如何写下依赖项的问题仍然存在。尽管在“何处”和“如何”写下依赖关系背后没有严格的标准但我们牢记初学者的主要动力成功的执行和可重复性。
最初我们认为默认设置应该是写入 requirements.txt 文件包括已安装的库版本。默认情况下选择编写版本支持用户对可重复性和易于协作的需求。考虑到目标受众所做工作的性质和我们的目标用法pyproject.toml 超出了范围因为目标用户通常不会构建他们的项目也没有直接的方法只安装 pyproject.toml 文件中列出的依赖项。
虽然此工作流程最初侧重于帮助可能不适应或不熟悉这些概念的初学者但我们希望它也能成为更高级的开发人员工具。我们希望允许您首选的库管理器通过扩展集成到此工作流中以支持更高级的工作流。
结论
VS Code 中的 Python 扩展正在不断评估我们可以改善用户在扩展中的体验的方法无论它们是否是新的。库管理是学习和使用 Python 时的核心基础我们希望减少成功所需的障碍。与往常一样我们很乐意听到您对我们功能的想法和反馈。有关此提案的具体反馈可以在 vscode-python#21627上提出。
CLI 命令覆盖范围
作为此调查的一部分我补充了一个表来跟踪跨包管理工具的 CLI 命令。此表并未说明支持的所有命令只包含专门与环境创建和包管理相关的命令。此外下面列出的许多命令都支持用于扩展命令功能的选项为了简洁起见此处未记录这些选项。