“在中心位置创建VenV的简单工具”

venvs的Python项目详细描述


PyPI versionSupported Python versionsTravis build statusAppVeyor build status

Venvs是一个工具,用于在单个文件中配置一组Virtualenvs, 要在每个包中安装哪些包,以及要在全局范围内生成的任何二进制文件 可从内部获取。

安装

通常:

$ pip install venvs

用法

使用venvs的最佳方法是创建名为 ~/.local/share/virtualenvs/virtualenvs.toml。下面是一个例子 其中:

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

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

在创建上述内容之后,运行convergeenvs将创建两个virtualenv, 其中一个叫“开发”,安装了pudb和twisted 从内部链接到您的PATH,第二个称为“app”安装 对应的目录。

你只需要知道这些。如果你坚持要继续读下去, Venvs有一个旧的,不太推荐的可变接口,它允许您 在中心位置创建virtualenv,而不在配置文件中跟踪它们 (或使它们合流)。为此,用法类似于mkvirtualenv, 尽管venvs将参数直接传递给virtualenv

$ venvs nameofvenv -- -p pypy

将在适当的特定平台中创建虚拟环境 数据目录,或在WORKON_HOME为指定的目录中 与VirtualenvWrapper兼容。

单用途虚拟机

virtualenvs的一个常见用例是用于单用途安装,例如:

“我想安装fabric并给它自己的virtualenv 依赖项可以独立升级,同时仍然可以使用 全局的fab二进制文件。

venvs支持此用例的--link选项:

$ venvs -i fabric --link fab

将为fabric创建一个virtualenv(在相同的正常位置),但是 将fab二进制文件从virtualenv中符号链接到 ~/.local/bin目录。

(您可能听说过pipsi,它是 这个用例的类似工具,但是定制性比我想要的要少 喜欢。)

临时虚拟机

我还发现mktmpenv对于快速测试很有用。为了支持它的用例, venvs当前支持不同但相似的临时样式 维图阿列诺夫。

调用:

$ venv=$(venvs -t)

在shell中将创建(或重新创建)全局临时virtualenv, 并打印其bin/子目录(在本例中是 存储在venv变量中)。它随后可以被使用,例如:

$ $venv/python

或:

$ $venv/pip ...

等等。

您可能更喜欢使用:

$ cd $(venvs -t)

作为你的临时VenV工作流程,如果你是这样做的话。

每次调用venvs -t时,都会清除全局virtualenv。 除非你在乎,不像virtualenvwrapper的mktmpenv,没有 不管下一次有什么关系,都要把它清理干净 时间,它将被清除和覆盖。

venvs可能支持在 但考虑到它默认不激活virtualenvs(见下文)。 对于这个用例,当前的建议是简单地使用 virtualenvbinary直接。

5分钟教程

除了venvs用于命名的virtualenv创建和venvs -t用于 上述临时虚拟化创建:

$ findenv name foo

将输出(到标准输出)具有给定名称的virtualenv的路径 (另请参见--existing-only)和:

$ rmenv foo

将移除它。

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

真正的文档(我希望)

我为什么不用虚拟说唱歌手呢?

virtualenvwrapper太棒了!我用了几年了。但我已经 慢慢地,我喜欢它的一小部分功能 使用。具体来说:

  • I don’t like activating virtualenvs.

    virtualenvs are magical and hacky enough on their own, and piling activation on top just makes things even more messy for me, especially when moving around between different projects in a shell. Some people use ^{tt27}$ tricks to solve this, but I just want simplicity.

  • I don’t need project support.

    I’ve never attached a project to a virtualenv. I just use a naming convention, naming the virtualenv with the name of the repo (with simple coersion), and then using dynamic directory expansion in my shell to handle association.

基本上,我只想要一个管理 对我来说是虚拟的。所以venvs就是这么做的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在数据库中插入行时自动发送电子邮件?   从进程输出读取的Java问题   java质疑StyledDocument和JTextPane之间的关系,以及接口的正确使用   java错误getPlayer(args[0]);   java如何使Spring引导在重新打包的WAR中包含清单文件?   Java中的除法与模   java使用2d数组和JfreeChart制作散点图   java扩展SonarQube FindBugs插件和自定义FindBugs插件   javaspring:hibernate+ehcache   具有不正确的equals和HashCode实现的java HashMap   java Jaspersoft报告网。旧金山。jasperreports。发动机例外:net。旧金山。jasperreports。发动机填满JRepressionEvalException:计算表达式时出错   java如果输入与其变量不匹配,如何添加错误   在java中使用简单数组[]实现队列   无法启动上下文路径/hsx上的java FAIL应用程序