Как запустить команду ткани в определенной среде - PullRequest
0 голосов
/ 13 октября 2011

Я определил различные среды в моем модуле:

__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 *

Как мне теперь запустить свой код в среде localdev?

 fab localdev deploy.flush_cache

Fatal error: Command(s) not found:
    localdev

Aborting.

Спасибо!

1 Ответ

0 голосов
/ 13 октября 2011

Вам необходимо импортировать init.py в fabfile.py. Аргументы, передаваемые в fabric, используются в качестве имен функций в fabfile.py. Поскольку вы не импортируете модуль, функция не существует, и вы получаете сообщение об ошибке «команда не найдена».

...