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])
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()
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
def install_in_virtualenv(): requirements_content = get_requirements_content() for package in requirements_content: pip_install(['install', "--prefix", get_env_path(), package])
def install(packages): for package in packages: pip_install(['install', package])