为什么提供对系统范围的python可执行文件和标准库的访问?

为什么提供对系统范围的python可执行文件和标准库的访问?,python,Python,当我使用pyvenv创建虚拟环境时,虚拟环境的python可执行文件被符号链接到系统范围的安装,因此,我可以访问系统范围的标准库。 为什么会这样? 虚拟环境的全部目的不是为了避免模块中API的变化吗? 标准库中的更改不能也破坏应用程序吗?“虚拟环境不就是为了避免模块中的API更改吗?”您是对的。但是添加到站点包/dist包的包中的API更改。不是标准库。 虚拟环境的概念是为您建立一个分布式软件包库,您希望在特定环境下一起使用这些软件包,同时保持标准库的完整性。例如,如果希望在不同的场景中运行这些

当我使用
pyvenv
创建虚拟环境时,虚拟环境的
python
可执行文件被符号链接到系统范围的安装,因此,我可以访问系统范围的标准库。 为什么会这样? 虚拟环境的全部目的不是为了避免模块中API的变化吗? 标准库中的更改不能也破坏应用程序吗?

“虚拟环境不就是为了避免模块中的API更改吗?”您是对的。但是添加到站点包/dist包的包中的API更改。不是标准库。
虚拟环境的概念是为您建立一个分布式软件包库,您希望在特定环境下一起使用这些软件包,同时保持标准库的完整性。例如,如果希望在不同的场景中运行这些分布式软件包的不同版本(或组合),而不与其他版本发生冲突,则需要执行此操作。这样,每个虚拟环境都链接到同一个标准库,您可以确保在环境中执行的程序可以访问特定版本(甚至设置)您决定保存在该环境中的包的数量。

您希望它做什么?也许这很有用:@martineau:我希望它提供一个完全隔离的环境。@warwaruk:谢谢,我已经阅读了该链接。但它只提到复制整个标准库并不是一个轻量级的解决方案。但据我所知,我将获得独立安装的优势。@Aton:我的意思是,一般来说,python应用程序并没有指定它们期望或需要的环境,任何虚拟环境工具所能做的最好的事情就是使不同的版本和/或配置看起来像是全局安装的版本和/或配置。