管理基于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。任何包含binlibinclude子目录以及文件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旁边, includelib,由带或不带 冒号(:)。

如果没有冒号,则该行被视为 该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在您的路径中。

< H2>更新现有虚拟机

您可以使用:

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中启动扫描,然后 可以使用命令。

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

推荐PyPI第三方库


热门话题
java使用字符而不是字符串的意义   部分匹配长度字符串相似性的java正则表达式   java获取构造函数错误(错误:“(”或“[”)   java@Value注释无法正常工作SpringBoot   java hasKey在响应中没有看到字段   java JavaFX,没有JFXButtons和所有   在Log4j2中,是否可以根据键从记录器中筛选出某些键值对?   如何使用Java中Kafka的消息,从特定偏移量开始   java在单击后存储动态按钮的值   java Android编码:ViewRootImpl$CalledFromErrorThreadException。[Noob]   通过FileChooser保存pdf格式会提示在java中出现第二个对话框   用于空文件的java Spring集成文件标记   java我们应该如何编写get方法,以便私有字段不会超出其预期范围?   java Eclipse产品问题,Juno RequireHandle:org。日食e4。果心服务