如何在特定环境中运行fabric命令

0 投票
1 回答
1266 浏览
提问于 2025-04-17 04:13

我在我的模块里定义了不同的环境:

__init__.py

def localdev():
    """
    Work on local dev environment
    """
    env.db_credentials = {'user':'username', 'pass':'passs','name':'mydb'}
    env.uwsgi_command = 'uwsgi'
    env.settings = 'local_dev'
    env.hosts = ['dev@localhost']

dev production():
    pass

deploy.py 文件里

from __future__ import with_statement

import os

from fabric.api import * 
from fabric.decorators import task

@task    
def flush_cache(environment, ):
    """
    Clear memcached cache
    """
    sudo('/etc/init.d/memcached restart', pty=True)

fabfile.py 文件里

from mymodule import *

现在我应该怎么在我的本地开发环境中运行我的代码呢?

 fab localdev deploy.flush_cache

Fatal error: Command(s) not found:
    localdev

Aborting.

谢谢!

1 个回答

0

你需要在fabfile.py里引入init.py。传给fabric的参数会被当作fabfile.py里的函数名来用。因为你没有引入这个模块,所以这个函数就不存在,这样就会出现找不到命令的错误。

撰写回答