virtualenv 和 pyenv 之间有什么关系?

2024-03-11

我最近学习了如何在工作流程中使用 virtualenv 和 virtualenvwrapper,但我在一些指南中看到了 pyenv,但我似乎无法理解 pyenv 是什么以及它与 virtualenv 有何不同/相似。 pyenv 是 virtualenv 更好/更新的替代品还是免费工具?如果是后者,它有什么不同之处,两者(以及 virtualenvwrapper 如果适用)如何一起工作?


Pyenv and 虚拟环境是非常不同的工具,以不同的方式工作来完成不同的事情:

  • Pyenv是一个 bash 扩展 - 不适用于 Windows - 它会拦截您对 python、pip 等的调用,将它们定向到几个系统 python 工具链之一。因此,您始终可以使用所选 python 版本中安装的所有库 - 因此,这对于必须在不同版本的 python 之间切换的用户来说是有好处的。

  • 虚拟环境,是纯Python,所以可以在任何地方工作,它复制了,可选的特定版本,激活环境的本地 python 和 pip 可能包含也可能不包含当前系统工具链的链接,如果不包含,您可以仅将已知的库子集安装到该环境中。因此,正如您所知,它几乎肯定更适合测试和部署exactly使用哪些库、哪些版本以及全局更改不会影响您的模块。

venv 蟒蛇 > 3.3

请注意,从 Python 3.3 开始,有一个名为 venv 的 VirtualEnv 内置实现(在某些安装上有一个名为 pyvenv 的包装器 - 该包装器是Python 3.6 中已弃用 https://docs.python.org/dev/whatsnew/3.6.html#id8),这可能应该优先使用。为了避免包装器可能出现的问题,通常最好直接使用它/path/to/python3 -m venv desired/env/path或者你可以使用优秀的pyWindows 上的 python 选择器py -3 -m venv desired/env/path。它将创建指定的目录desired/env/path适当地配置和填充它。一般来说,它非常类似于使用 VirtualEnv。

附加工具

有许多工具值得一提和考虑,因为它们可以帮助使用上述一个或多个:

  • 虚拟环境包装器 https://pypi.python.org/pypi/virtualenvwrapper管理并简化 VirtualEnv 的使用和管理 -跨平台.
  • pyenv-virtualenv https://github.com/yyuu/pyenv-virtualenv, 安装者pyenv 安装程序 https://github.com/yyuu/pyenv-installer,它提供了用于管理和连接 VirtualEnv 的 PyEnv 工具 - 有了它,您可以拥有一个包含多个版本的 python 的基本安装,并在每个版本中创建隔离的环境 -Linux/OS-X. 由约翰·维萨吉建议
  • py安装程序 http://www.pyinstaller.org/可以获取你的Python代码,可能是在VirtualEnv下开发和测试的,并将其捆绑起来,这样它就可以运行一个没有虚拟环境的平台你的版本python已安装 - 请注意,它不是交叉编译器,您将需要Windows(虚拟)机器来构建Windows安装等,但即使您可以确定将安装python但不能确定它也可以很方便python 和所有库的版本将与您的代码兼容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

virtualenv 和 pyenv 之间有什么关系? 的相关文章

随机推荐

  • 如何从另一个 PHP 类连接到 MongoDB?

    我有以下代码来连接到 MongoDB try m new Mongo mongodb MONGO servers i mongo host MONGO servers i mongo port catch MongoConnectionEx
  • 使用 Spring Boot 提供 React 应用程序时的 React-Router 问题

    我目前需要使用 Spring Boot 为我的 React 应用程序提供服务 它适用于根 url localhost 8080 但是 Spring 控制器当然不会识别任何子路由 我不知道如何让 React 路由和 Spring 请求映射对齐
  • 一个数组元素占用多少内存?

    我认为浏览器之间可能存在差异 但是我如何知道 Javascript 中一个数组或它的一个元素占用了多少内存呢 我想知道使用类型化数组时节省了多少空间 提前致谢 这取决于很多方面 用于存储变量的引用的长度可以有不同的大小 如果您不使用关联数组
  • 为什么 iPhone 4、5、6 横向时宽度和高度紧凑

    我是 iOS 开发新手 刚刚学习适应性和布局 我遇到了一点困惑 根据文档 https developer apple com library ios documentation UserExperience Conceptual Mobil
  • 如何将 Javascript 字符串转码为 ISO-8859-1?

    我正在编写一个 Chrome 扩展程序 可与使用 ISO 8859 1 的网站配合使用 只是为了提供一些背景信息 我的扩展所做的是通过添加更方便的帖子表单来更快地在网站论坛中发帖 然后通过 Ajax 调用 使用 jQuery 发送写入消息的
  • 我正在使用 TestRestTemplate 来测试 @RequestParam 值如何执行

    如何将 RequestParam值发送到url enter code here ApiRestController 公共类 CityController 扩展 BaseController GetMapping cities public
  • JS Puppeteer 等待页面加载完成[重复]

    这个问题在这里已经有答案了 看到这个之后我受到启发 尝试了一下它 但我似乎错误地选择了一个网站作为启动项目 const puppeteer require puppeteer async gt const browser await pup
  • jest.config 被忽略

    我的 jest config js 中有以下内容 module exports preset ts jest presets js with ts testEnvironment jsdom 但当我运行 npm test 时它被忽略 有人可
  • 使 CSS 背景图像变暗? [复制]

    这个问题在这里已经有答案了 应该是一个相当简单的问题 在我的网站中我这样做 landing wrapper display table width 100 background url landingpagepic jpg backgrou
  • 将数据框折叠到一个变量上

    我有一个以下格式的数据框 Site Year Month Count1 Count2 Count3 Patch 1 1 May 15 12 10 1 1 1 May 8 0 5 2 1 1 May 3 1 2 3 1 1 May 4 4 1
  • 如何使用 C api 通过完整路径导入文件?

    PyObject PyImport ImportModule const char name 如何指定完整文件路径和模块名称 Like PyImport SomeFunction const char path to script cons
  • 如何在android中为ViewFlipper设置动态图像?

    我正在这样做 它正在加载静态这些图像 public class ArchiveGroup extends Activity Button btn ViewFlipper flip public void onCreate Bundle sa
  • SQL LIMIT 返回“零” - 0 - 行(PHP 中)

    当查询返回零行时 我在此查询中出现错误 错误号 1064 您的 SQL 语法有错误 检查与您的 MySQL 服务器版本相对应的手册 了解在第 3 行 20 20 附近使用的正确语法 从玩家 pl 中选择 pl name pl email 在
  • 在 Webview.clearView() 后多次执行 WebView.loadurl() 会导致崩溃

    在 Webview clearView 之后多次执行 WebView loadurl 会导致崩溃 安卓4 0 3 这是 logcat 输出 Build fingerprint Lenovo P700i P700i 4 0 4 IMM76D
  • 尝试创建一个“值列表”,包括表值及其下面的数字

    所以基本上说我有一个名为 设备 的表 然后其中一列是 数量 如果我想创建一个采用该数字的值列表 假设数量为 4 并且值是 数量 1 直到 gt 0 所以在本例中为 4 3 2 1 我正在使用 Oracle APEX 并且假设我需要基于 sq
  • 如何提取文本字符串中的文本

    我有一个简单的问题 我希望在不使用 VBA 的情况下解决它 但如果这是解决它的唯一方法 那就这样吧 我有一个包含多行 均为一列 的文件 每行都有如下所示的数据 1 7 82E 13 gt gi 297848936 参考 XP 00 4 氢氧
  • Android 通知大图像不起作用

    我正在创建这样的通知 Intent intent new Intent this OfferNotification class PendingIntent pIntent PendingIntent getActivity this 0
  • 之间的区别。 git 中的 (点) 和 * (星号) 通配符

    我有一个本地存储库 并试图放弃自上次提交以来的所有更改 git checkout HEAD 命令 一切工作正常 即使更改是在某个子目录中 但是当我添加一些未跟踪的文件 满足中的掩码 gitignore 对存储库的根目录说 Ignored t
  • 测试 POSIX shell 合规性?

    如何测试 shell 脚本以验证它是否符合 POSIX 标准 我有大量为各种版本的 Bash 和可能的其他 shell 编写的脚本 我希望能够确定哪些完全符合 POSIX 标准 哪些不符合 理想情况下 我想找到类似的东西lint但对于 sh
  • virtualenv 和 pyenv 之间有什么关系?

    我最近学习了如何在工作流程中使用 virtualenv 和 virtualenvwrapper 但我在一些指南中看到了 pyenv 但我似乎无法理解 pyenv 是什么以及它与 virtualenv 有何不同 相似 pyenv 是 virt