跳转到主要内容

管理基于 virtualenv/-m venv 的实用程序

项目描述

您可以使用此工具管理基于 virtualenv 的 实用程序。除了安装和更新外,其主要用途是创建链接(在 /usr/local/bin),以便安装在不同虚拟环境中的实用程序。

最初,它只创建可以“源”到 bash 的别名定义。但是,这些别名在非登录 shell(以及 crontab 等)中使用起来很困难。它仍然可以生成这些别名,但只为那些它无法在 /usr/local/bin/ 中找到链接的命令。

在这种设置中,您为每个实用程序都有一个单独的虚拟环境,您不希望将每个虚拟环境的 bin 目录扩展到您的路径中,因为这会给您带来

  • 长的 PATH

  • PATH 中的多个 Python 可执行文件

  • 所有由安装某些 Python 包依赖项产生的实用程序,对于这些实用程序,您可能想要使用不同的版本(或不是全部)。

如果在安装/更新期间无法写入 /usr/local/bin,程序将调用 sudo ln -s /usr/local/bin/yourutil /opt/util/yourutil/bin/yourutil(或类似)并提示您输入 root 权限密码。

当然,直接指定基于虚拟环境的实用程序的完整路径也是可以的。

别名

这不再需要。

virtualenvutils alias dir1 dir2 用于扫描 dir1dir2 下的目录,非递归地查找虚拟环境。任何包含 binlibinclude 子目录以及文件 bin/activate 的目录都被视为虚拟环境。

对于这些虚拟环境中的任意一个,它将执行以下操作之一(按此顺序检查)

  • 如果存在 virtualenvutils.conf 文件,则将其加载以确定工具及其可能的映射。

  • 如果 dir1 等 目录下的名称为例如 do_xyx,且 dir1/do_xyz/bin/do_xyz 存在且可执行,则该工具为此工具

  • 如果没有匹配的名称,则将 bin 下的所有可执行文件视为工具,除非它们具有匹配扩展名 “.so”、“.py” 或 “.pyc”,除了匹配 activate*easy_install*pip*python*wheel* 的文件。

然后,工具将为所有找到的工具生成别名,确保它们是唯一的,如果通过最后一种方法添加,并将这些别名定义写入标准输出。任何错误都将写入标准错误。

其他功能包括

  • 更新所有虚拟环境的所有包

有关子命令的完整列表,请参阅 virtualenvutils --help

virtualenvutils.conf

如果提供 virtualenvutils.conf 文件,它必须位于虚拟环境的最顶层目录中(即位于 binincludelib 旁边),由单行组成,可带有或不带有冒号(:)。

如果没有冒号,则该行被视为该虚拟环境 bin 下的可执行文件名称。

如果有冒号,则冒号之前的部分被视为 bin 下的可执行文件名称,可执行文件的实际名称是冒号之后的部分。

示例

您想在虚拟环境中安装 docker-compose。如果您这样做

mkvirtualenv -p /opt/python3/bin/python /opt/util/docker-compose
source !$/bin/activate
pip install docker-compose
deactivate

您需要用以下方式调用它

/opt/util/docker-compose/bin/docker-compose

如果您指定了不同的最终目录

mkvirtualenv -p /opt/python3/bin/python /opt/util/compose
source !$/bin/activate
pip install docker-compose
deactivate

您需要使用

/opt/util/compose/bin/docker-compose

以上操作可以通过使用 virtualenvutils 来完成

virtualenvutils install /opt/util/docker-compose

virtualenvutils install /opt/util/compose --pkg docker-compose

分别。在这两种情况下,将在 /usr/local/bin/docker-compose 创建一个链接,该链接可以启动您的工具。

安装 virtualenvutils

要初始化 virtualenvutils

mkvirtualenv -p /opt/python3/bin/python /opt/util/virtualenvutils
source !$/bin/activate
pip install virtualenvutils
virtualenvutils update virtualenvutils  # this will create the link
deactivate

之后,您可以在 /usr/local/bin 在您的 PATH 中时使用普通的 virtualenvutils

更新现有虚拟环境

您可以使用以下命令更新所有虚拟环境工具(位于 /opt/util)的所有包

virtualenvutils update /opt/util

update 的参数将被检查,看它们是否为虚拟环境。如果是,则逐个检查它们是否为虚拟环境(如上述示例所示)。如果不是,则检查它们的子目录是否为虚拟环境(非递归)。

安装新工具

您可以使用以下方式安装一个或多个基于 virtualenv 的新工具

virtualenvutils install /opt/util/{docker-compose,ruamel.yaml.cmd}

您可以使用 --pkg 传递不同的包名(在这种情况下,当然只能指定一个路径),并使用 --python /opt/python/3/bin/python 显式指定要使用的 Python 版本。

请记住,如果您通过 .bashrc 中的别名初始化扫描,则可能需要注销并重新登录,才能使用这些命令。

项目详情


下载文件

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

源代码分发

virtualenvutils-0.6.3.tar.gz (22.6 kB 查看哈希值)

上传时间 源代码

构建分发

virtualenvutils-0.6.3-py3-none-any.whl (12.7 kB 查看哈希值)

上传时间 Python 3

支持