管理基于virtualenv的实用程序
virtualenvutils的Python项目详细描述
使用此实用程序可以管理基于virtualenv的utilities。它的 除了安装和更新外,主要用途是创建链接 (在/usr/local/bin)中,用于单独安装的实用程序 虚拟人。
最初它只创建了别名定义,这些定义可以“源”到bash中。 但这些别名很难从非登录shell(和crontab等)中使用。 它仍然可以生成这些别名,但仅对那些在/usr/local/bin/
中找不到链接的命令执行此操作。在这样的设置中,您为每个 实用程序,您不希望使用bin目录扩展路径 每一个虚拟机,这给你:
- 漫长的道路
- 路径中有多个python可执行文件
- 由于安装了一些python包依赖项而导致的所有实用程序 可能需要使用不同的版本(或不是全部)。
如果在安装/更新期间/usr/local/bin无法写入, 程序将调用sudo ln -s /usr/local/bin/yourutil /opt/util/yourutil/bin/yourutil(或类似的)来提示您 对于根特权密码。
当然,直接指定基于virtualenv的完整路径 公用事业也很管用。
别名
这不再需要。
virtualenvutils alias dir1 dir2扫描目录,非递归,在dir1`, ``dir2下查找virtualenvs。任何包含bin、lib、include子目录以及文件bin/activate的目录都被视为virtualenv。
对于这些虚拟机,它执行以下操作之一(按此顺序选中):
- 如果存在virtualenvutils.conf文件,则加载该文件以确定 实用程序和它们的映射。
- 如果dir1等目录下的目录名是do_xyx, 并且{TT14} $存在并且是可执行的,然后这是 实用程序
- 如果没有匹配的名称,则 bin除了那些匹配的activate*,easy_install*, pip*,python*,wheel*被视为实用程序,除非 它们的扩展名与“.so”、“.py”或“.pyc”匹配。
然后,该实用程序为所有以这种方式找到的实用程序生成别名, 确保它们在最后一个方法中添加时是唯一的,并写入 对stdout的别名定义。任何错误都转到stderr。
其他功能包括:
- 更新所有virtualenv的所有软件包
有关子命令的完整列表,请参见virtualenvutils --help。
virtualenvutils.conf
如果提供了virtualenvutils.conf文件,则必须在 virtualenv的顶层目录(即在bin旁边, include和lib,由带或不带 冒号(:)。
如果没有冒号,则该行被视为 该virtualenvsbin下的可执行文件的名称。
如果有冒号,则冒号前的部分视为 在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
之后,您可以使用普通的virtualenvutils,只要 /usr/local/bin在您的路径中。
您可以使用:
virtualenvutils update /opt/util
检查update的参数,看它们是否是virtualenvs。如果他们 他们有最新消息吗就个人而言。如果不是(如上所述 示例)它们的每个subdir都被检查为virtualenvs(非递归)。
安装新的util
您可以使用 例如:
virtualenvutils install /opt/util/{docker-compose,ruamel.yaml.cmd}
您可以使用--pkg 提供与路径最后部分不同的包名称 (在这种情况下,您当然只能指定一个路径),并且 --python /opt/python/3/bin/python您可以显式地 指定要使用的python版本。
不要忘记,如果设置了 您的别名将在.bashrc中启动扫描,然后 可以使用命令。