跳转到主要内容

用于在中央位置创建venvs的简单工具

项目描述

PyPI version Supported Python versions Travis build status AppVeyor build status

mkenv 是一个工具,用于在单个文件中配置一组虚拟环境,每个环境要安装的包,以及任何全局可用的二进制文件。

安装

常规方法

$ pip install mkenv

用法

使用mkenv的最佳方式是创建一个名为 ~/.local/share/virtualenvs/virtualenvs.toml 的文件。以下是一个示例:

[virtualenv.development]
install = [
    "pudb",
    "twisted",
]
link = ["trial"]

[virtualenv.app]
install = ["$DEVELOPMENT/myapp"]

创建上述内容后,运行 convergeenvs 将创建2个虚拟环境,一个名为“development”,其中安装了pudb和twisted,并从内部链接到您的 PATH,另一个名为“app”安装相应的目录。

这就是您需要了解的所有内容。如果您坚持要继续阅读,mkenv有一个较旧且不推荐的可变接口,允许您在不跟踪配置文件(或合并它们)的情况下在中央位置创建虚拟环境。为此,用法类似于 mkvirtualenv,尽管 mkenv 直接将参数传递给 virtualenv

$ mkenv nameofvenv -- -p pypy

将在适当的平台特定数据目录中创建虚拟环境,或者在工作区 WORKON_HOME 中指定的目录中创建,以兼容 virtualenvwrapper。

单用途虚拟环境

虚拟环境的一个常见用途是用于单用途安装,例如

“我想安装fabric,并给它自己的虚拟环境,以便可以独立升级其依赖项,同时仍然能够全局使用 fab 二进制文件”。

mkenv 支持为这种情况提供 --link 选项。

$ mkenv -i fabric --link fab

将为 fabric 创建一个虚拟环境(在同一常规位置),但会将虚拟环境中的 fab 二进制文件软链接到您的 ~/.local/bin 目录。

(您可能听说过 pipsi,这是一个类似工具,但自定义程度不如我所希望的。)

临时虚拟环境

我还发现 mktmpenv 对于快速测试很有用。为了支持其使用场景,mkenv 目前支持一种不同但类似的临时虚拟环境风格。

调用

$ venv=$(mkenv -t)

在您的 shell 中将创建(或重新创建)一个全局临时虚拟环境,并打印其 bin/ 子目录(在这种情况下,它将被存储在 venv 变量中)。它随后可以被用于,例如

$ $venv/python

$ $venv/pip ...

等等。

如果您喜欢这种类型的工作流程,您可能会更喜欢使用

$ cd $(mkenv -t)

作为您的临时 venv 工作流程。

全局虚拟环境会在每次调用 mkenv -t 时清除。除非您关心这一点,否则与 virtualenvwrapper 的 mktmpenv 不同,无需担心清理它,每次需要时,它将被清除并覆盖。

mkenv 可能会在未来支持更相似的“传统”一次性使用虚拟环境,但鉴于它默认不激活虚拟环境(见下文),对于此使用场景,当前建议直接使用 virtualenv 二进制文件。

五分钟教程

除了上述用于创建命名虚拟环境的 mkenv 和用于创建临时虚拟环境的 mkenv -t

$ findenv name foo

将输出(到标准输出)具有给定名称的虚拟环境的路径(另见 --existing-only),并且

$ rmenv foo

将其删除。

还有一些其他细微的变体,请参阅三个二进制文件中的每个的 --help 信息。

真正的文档即将到来(我希望)

为什么不使用 virtualenvwrapper?

virtualenvwrapper 很棒!我已经使用了几年。但我逐渐确定了我喜欢使用的该功能的一个更小的子集。具体来说

  • 我不喜欢激活虚拟环境。

    虚拟环境本身已经很神奇和黑客式了,再在上面堆叠激活只会让我觉得事情更乱,尤其是在 shell 中在不同项目之间移动时。有些人使用 cd 小技巧来解决这个问题,但我只想保持简单。

  • 我不需要项目支持。

    我从未将项目附加到虚拟环境中。我只是使用命名约定,用存储库的名称命名虚拟环境(进行简单转换),然后使用 shell 中的动态目录扩展 来处理关联。

基本上,我只是想要一个为我管理虚拟环境中央存储库的东西。所以这就是 mkenv 做的事情。

项目详情


下载文件

下载适合您平台的应用程序文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

mkenv-3.4.0.tar.gz (14.8 kB 查看哈希值)

上传时间

构建分发

mkenv-3.4.0-py2-none-any.whl (15.9 kB 查看哈希值)

上传时间 Python 2

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面