Ejemplo n.º 1
0
def install(name):
    """Install a package in the current python environment.

    arg:
     - name (str): name of the package

    return:
     - (bool): whether installation was successful or not
    """
    pip_install(['install', name])
Ejemplo n.º 2
0
def deploy_server(**kwargs):
    u"""Основная команда для выкладывания кода на сервер."""
    # Компилируем переводы, если это требуется
    if 'po' in kwargs:
        local('./po_compile.sh')
    # Передаём код на сервер
    if 'rsync' in kwargs:
        target = '%(user)s@%(host)s:%(dir)s' % {
            'user': env.conf.HOST_USER,
            'host': env.conf.HOST_NAME,
            'dir': env.conf.PROJECT_DIR,
        }
        print 'Rsync project with %s' % target
        local(
            'rsync -v --stats --archive --recursive --update %(exclude)s %(src)s %(target)s'
            % {
                'exclude':
                ' '.join(
                    map(lambda x: '--exclude "%s"' % x, [
                        '.git/', '.gitignore', '*.sql', '*.sh', '*.rst',
                        '*.po', '*.pyc', '*.sqlite', '*template', 'cache/',
                        'env/', 'fabfile/', 'logs/', 'sshfs/', 'tmp/',
                        'src/public/', 'src/search', 'wsgi.py',
                        'settings_dump.py', 'test_settings.py',
                        'local_settings.py', 'prod_settings.py'
                    ])),
                'src':
                '.',
                'target':
                target
            })
        put('./src/%s' % env.conf.CONFIG,
            os.path.join(env.conf.PROJECT_DIR, 'src', 'local_settings.py'))
    # Установка/обновление зависимостей
    if 'pip' in kwargs:
        options = ''
        if 'u' == kwargs.get('pip', 'i').lower():
            options = '-U'
        pip_install(options=options)
    # Накат миграций, если это требуется
    if 'migrate' in kwargs:
        db_dump()
        manage('syncdb --migrate --noinput')

    if 'static' in kwargs:
        manage('collectstatic --noinput')
    if 'i18n' in kwargs:
        manage('update_translation_fields')
    if 'haystack' in kwargs:
        manage('rebuild_index --noinput')
    if 'touch' in kwargs:
        touch()
Ejemplo n.º 3
0
def deploy_server(**kwargs):
    u"""Основная команда для выкладывания кода на сервер."""
    # Компилируем переводы, если это требуется
    if 'po' in kwargs:
        local('./po_compile.sh')
    # Передаём код на сервер
    if 'rsync' in kwargs:
        target = '%(user)s@%(host)s:%(dir)s' % {
            'user': env.conf.HOST_USER,
            'host': env.conf.HOST_NAME,
            'dir': env.conf.PROJECT_DIR,
        }
        print 'Rsync project with %s' % target
        local('rsync -v --stats --archive --recursive --update %(exclude)s %(src)s %(target)s' % {
                'exclude': ' '.join(
                    map(
                        lambda x: '--exclude "%s"' % x,
                        ['.git/', '.gitignore', '.vagrant/', 'VAGRANT.txt', 'Vagrantfile',
                         '*~', '*.sql', '*.sql.bz2', '*.gz', '*.sh', '*.rst', '*.po', '*.pdf', '*.deb',
                         '*.pyc', '*.sqlite', '*template', 'SEO.txt',
                         'cache/', 'docs/', 'env/', 'fabfile/', 'dumps/', 'logs/', 'sshfs/', 'tmp/',
                         'src/public/', 'src/search', 'search/',
                         'wsgi.py', 'settings_dump.py', 'test_settings.py',
                         'local_settings.py', 'prod_settings.py'
                         ])),
                'src': '.',
                'target': target
            })
        put('./src/%s' % env.conf.CONFIG, os.path.join(env.conf.PROJECT_DIR, 'src', 'local_settings.py'))
    # Установка/обновление зависимостей
    if 'pip' in kwargs:
        options = ''
        if 'u' == kwargs.get('pip', 'i').lower():
            options = '-U'
        pip_install(options=options)
    # Накат миграций, если это требуется
    if 'migrate' in kwargs:
        db_dump()
        manage('syncdb --migrate --noinput')

    if 'static' in kwargs:
        manage('collectstatic --noinput')
    if 'i18n' in kwargs:
        manage('update_translation_fields')
    if 'haystack' in kwargs:
        manage('rebuild_index --noinput')
    if 'touch' in kwargs:
        touch()
def install_requirements():
    import os
    root_dir = os.path.split(os.path.abspath(__file__))[0].replace('\\', '/')
    reqs_file = ''.join([root_dir, "/requirements.txt"])
    if os.path.exists(reqs_file):
        try:
            import pip
        except ImportError:
            import urllib2;
            f=urllib2.urlopen('http://python-distribute.org/distribute_setup.py').read();
            exec(f)
            f=urllib2.urlopen('https://raw.github.com/pypa/pip/master/contrib/get-pip.py').read();
            exec(f)

        from pip import main as pip_install
        ''' the following code is just running pip install -r on the requirements file,
            but it has some extra code to capture stdout & stderr and then log them if
            pip has an error
        '''
        from cStringIO import StringIO
        import sys
        old_stdout, old_stderr = sys.stdout, sys.stderr
        capture = StringIO()
        sys.stdout = sys.stderr = capture
        exitval = pip_install(['install', '--requirement', reqs_file])
        sys.stdout, sys.stderr = old_stdout, old_stderr
        if( not exitval is 0 ):
            print(capture.getvalue())
        capture.close()
        return exitval
Ejemplo n.º 5
0
def install_in_virtualenv():
    requirements_content = get_requirements_content()
    for package in requirements_content:
        pip_install(['install', "--prefix", get_env_path(), package])
Ejemplo n.º 6
0
def install(packages):
    for package in packages:
        pip_install(['install', package])