在中心位置创建venv的简单工具

mkenv的Python项目详细描述


PyPI versionSupported Python versionsTravis build statusAppVeyor build status

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

安装

通常:

$ pip install mkenv

用法

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

[virtualenv.development]install=["pudb","twisted",]link=["trial"][virtualenv.app]install=["$DEVELOPMENT/myapp"]

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

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

$ mkenv nameofvenv -- -p pypy

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

单用途虚拟机

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

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

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

$ mkenv -i fabric --link fab

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

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

临时虚拟机

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

调用:

$ venv=$(mkenv -t)

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

$ $venv/python

或:

$ $venv/pip ...

等等。

您可能更喜欢使用:

$ cd $(mkenv -t)

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

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

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

5分钟教程

除了mkenv用于命名的virtualenv创建和mkenv -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.

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

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

推荐PyPI第三方库


热门话题
java使用split函数分割字符串,但没有得到期望的结果   未找到包含derby数据库嵌入架构的sql Java桌面应用程序错误   java elasticsearch vs solr用于定制全文搜索系统   java Android:创建没有startOffset的动画延迟?   java如何查看其他应用程序接收的数据?   java如何在Linux中使用D和classpath选项运行jar文件   java和域设计最佳实践   具有相同内存位置的java数组,将显示为输出   连接到java中的elasticsearch?   Java Playframework重定向到带有Json负载的外部url   java无法在Android平台上使用InputStream为蓝牙socket创建ObjectInputStream   使用POI将Excel日期转换为Java日期,年份未正确显示   oracle从数据库层还是Java层调用webservice?