管理基于 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 用于扫描 dir1 和 dir2 下的目录,非递归地查找虚拟环境。任何包含 bin、lib、include 子目录以及文件 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 文件,它必须位于虚拟环境的最顶层目录中(即位于 bin、include 和 lib 旁边),由单行组成,可带有或不带有冒号(:)。
如果没有冒号,则该行被视为该虚拟环境 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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 929086073e528ded0a12d942f20d123bbc89fa5a91808d70147cd8589202f9a7 |
|
MD5 | a9c26503943f9616ad1319b9eb16eb49 |
|
BLAKE2b-256 | 5f38704d049e9f093cf80a8e6d4a9431744a81901b0a68ddb4cf30d65600232d |
virtualenvutils-0.6.3-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2862742f2427adf3cbc80ea6305e4e15c9443f0d742b9ba9db77c39315770fd7 |
|
MD5 | c6308a7281f173121b4b5c05a93526a7 |
|
BLAKE2b-256 | 67e0732e147a867705247d0ced58189e2a8ebb777b2c59884f4ff7455206f428 |