当前位置: 首页 > 面试题库 >

通过架构以部署用户身份激活virtualenv

齐高寒
2023-03-14
问题内容

我想在本地运行我的结构脚本,这将依次登录到我的服务器,切换用户以进行部署,激活项目.virtualenv,这将把dir更改为项目并发出git pull。

def git_pull():
    sudo('su deploy')
    # here i need to switch to the virtualenv
    run('git pull')

我通常使用来自virtualenvwrapper的workon命令,该命令提供激活文件,后激活文件会将我放置在项目文件夹中。在这种情况下,似乎因为结构是在shell中运行的,所以控制权移交给了结构,所以我不能将内置的bash源使用到’$
source〜/ .virtualenv / myvenv / bin / activate’中。

有人举一个例子并说明他们如何做到这一点吗?


问题答案:

现在,您可以执行我的操作,这很麻烦,但是效果很好*(此用法假设您正在使用virtualenvwrapper-应该如此-
但您可以轻松地替换为您提到的更长的“源”调用, 如果不):

def task():
    workon = 'workon myvenv && '
    run(workon + 'git pull')
    run(workon + 'do other stuff, etc')

从1.0版开始,Fabric具有使用此技术的prefix上下文管理器,因此您可以例如:

def task():
    with prefix('workon myvenv'):
        run('git pull')
        run('do other stuff, etc')

*在某些情况下,使用该command1 && command2方法可能会给您带来麻烦,例如command1失败(command2永远不会运行)或command1无法正确转义并且包含特殊的shell字符等。



 类似资料:
  • 我正在我的Web应用程序中构建聊天功能。我使用jitsi作为我们的聊天服务器。在视频聊天会话中可以有2-4个用户。这些会话将被锁定。Web应用程序将启动聊天,并将控制谁可以加入聊天室。 我试图嵌入jitsi满足内部使用jitsi满足外部API的网页这里列出https://github.com/jitsi/jitsi-meet/blob/master/doc/api.md。 我们的jitsi会议不向

  • 在 3.1创建用户 中,我们注册了一个用户,并且产生了激活码,这个时候,我们得到激活码,怎么激活用户呢? 其实很简单,看代码 try { // 根据 userid 查询用户 $user = Sentry::findUserById(1); // 使用激活码激活用户 if ($user->attemptActivation('产生的激活码')) {

  • 问题内容: 我刚刚开始使用Jenkins CI,遇到了一个问题,我很想在文档或在线中找到答案。想知道是否有人可以提供一些建议? 我正在尝试使用它来自动部署托管在Github组织存储库(即私有)上的Django项目的dev和stage分支。目前,我有一个用户“ django”,可以通过Github部署密钥访问Github存储库。我的Jenkins用户无法访问该存储库。解决此问题的最佳实践是什么-我应

  • 我需要在google workspace上自动化一些流程,现在我只能通过API激活Gmail,我在任何地方都找不到任何资源或示例。 感谢您的帮助,指出参考或答案。 更新: 所以我有谷歌工作区,我正在研究自动用户和他们的gmail帐户。从屏幕截图中,我可以简单地点击“激活Gmail”,它会检查我的MX记录并激活它,但我正在寻找一个解决方案,在那里我可以使用Ruby通过谷歌API来实现。

  • 目的 我们使用Databricks集群进行ETL流程,使用Databricks笔记本进行DS、ML和QA活动。 目前,我们不使用Databricks目录或外部Hive Metastore。我们以Spark StructType格式编程定义模式,并将路径硬编码如下: 表/some_table.py 我们时不时地进行一些重构,更改表的路径、模式或分区。这是一个问题,因为Database ricks是开

  • 多亏了来自NickFroty的youtube教程,我能够在php中创建一个合适的注册系统,我已经能够将他的代码从mysql转换为mysqli,并且能够在用户注册后通过电子邮件发送激活链接。 下面的代码将在数据库中插入注册详细信息,并在用户注册后将消息和激活链接发送到用户的电子邮件。 但是我现在有个问题。如果我点击链接,它会将用户导航到页面。 我的问题是:在用户点击激活链接后,它如何激活用户的帐户?