gpt4 book ai didi

python - 让 Python 虚拟环境、Fabric 和 Sudo 协同工作

转载 作者:行者123 更新时间:2023-11-28 16:42:17 25 4
gpt4 key购买 nike

重现步骤:

  1. 在 linux 环境中,在桌面上创建一个名为“fab”的文件夹
  2. 仅供引用,我正在使用 zsh
  3. cd 到 ~/Desktop/fab
  4. 通过发出 fab init 运行在您的 ./fab 目录中生成的这个 fabfile.py:

    #!/usr/bin/env python
    #set up ssh to remote server

    import sys, os, fileinput
    from fabric.api import *

    def init():
    local('mkdir ./virtualenv')
    local('cd ./virtualenv && virtualenv --no-site-packages venv')
    local('chown -R user:user ./virtualenv/')
    local('chmod 770 -R ./virtualenv/')
    venv = 'source ./virtualenv/venv/bin/activate && '
    local(venv+'pip install mysql-python django South')
  5. 得到这个错误:

    ➜  fab  fab init    
    [localhost] local: mkdir ./virtualenv
    [localhost] local: cd ./virtualenv && virtualenv --no-site-packages venv
    New python executable in venv/bin/python
    Installing distribute...........................................................................................................................................................................................................................done.
    Installing pip................done.
    [localhost] local: chown -R user:user ./virtualenv/
    [lcalhost] local: chmod 770 -R ./virtualenv/
    [localhost] local: source ./virtualenv/venv/bin/activate && pip install mysql-python django South
    /bin/sh: 1: source: not found

    Fatal error: local() encountered an error (return code 127) while executing 'source ./virtualenv/venv/bin/activate && pip install mysql-python django South'

    Aborting.
  6. 从 zsh 运行 source ./virtualenv/venv/bin/activate && pip install mysql-python django South,并观察它是否有效。

这不是类似 this 的重复问题,因为即使我在代码中使用带前缀的 (

有什么想法吗?

最佳答案

/bin/bash/替换source。这是一个例子:

from fabric.api import *


def init():
local('virtualenv --no-site-packages venv')

venv_command = '/bin/bash venv/bin/activate'
pip_command = 'venv/bin/pip install mysql-python django South'
local(venv_command + ' && ' + pip_command)

仅供引用,对于 run/sudo,最好使用 prefix 上下文管理器,如建议的那样 here .

希望对您有所帮助。

关于python - 让 Python 虚拟环境、Fabric 和 Sudo 协同工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17795618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com