gpt4 book ai didi

python - python虚拟环境真正隔离的是什么 'operations'?

转载 作者:太空宇宙 更新时间:2023-11-04 00:06:29 25 4
gpt4 key购买 nike

在 python 虚拟环境中使用 sudo apt-get install 安装包或从源代码构建库时(我不是在谈论 pip install),在 python 虚拟环境中执行它会隔离正在安装的应用程序吗?我的意思是它们只存在于 python 虚拟环境中吗?

最佳答案

虚拟环境为您提供的隔离版本:

  • 您会得到一个单独的 PATH 条目,因此对 pythonpip 等的非限定命令行引用将引用所选的 python 分布。如果系统上安装了多个 Python 副本(在开发人员工作站上很常见),这会很方便。这意味着像 #!/usr/bin/env python 这样的 shebang 行将在 virtualenv 中“做正确的事”(至少在 Unix 或类 Unix 系统上)。<
  • 您将获得一个单独的 site-packages 目录,因此 Python 包(使用 pip 安装或在此环境中本地构建,例如使用 setup.py build) 在本地安装到 virtualenv,而不是在系统范围内的位置。这在核心 Python 解释器安装在不允许非特权用户写入文件的地方的系统上特别有用,因为它允许每个用户拥有自己的私有(private) virtualenvs 安装第三方包,而无需使用 sudo 或等同于在系统范围内安装这些第三方软件包。

...仅此而已。

虚拟环境不会将您隔离于:

  • 您的操作系统(Linux、Windows)或机器架构 (x86)。
  • 直接引用特定 Python 解释器的脚本(例如 #!/usr/bin/python)。
  • 系统 PATH 上的非 Python 内容(例如,通过操作系统的包管理器安装的第三方程序或实用程序)。
  • 安装到操作系统特定位置的非 Python 库或 header (例如 /usr/lib/usr/include/usr/local/lib, /usr/local/include).
  • 使用操作系统的包管理器(例如 apt)而不是 Python 包管理器(pip)安装的 Python 包可能无法从 virtualenv 的 site-packages 文件夹,但此类包的“ native ”部分(例如 /usr/lib)将(可能)仍然可见。

关于python - python虚拟环境真正隔离的是什么 'operations'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53932357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com