Установка Джанго в виртуален с парамико

Я использую paramiko и создаю некоторые virtualenvs над ssh, например:

from paramiko import SSHClient, SSHConfig

def ssh_connect(self):
    # ssh config file
    config = SSHConfig()
    config.parse(open(settings.SSH_CONFIG))
    o = config.lookup('my_key')

    # ssh client
    ssh_client = SSHClient()
    ssh_client.load_system_host_keys()
    ssh_client.connect(o['hostname'], username=o['user'])
    return ssh_client

def create_virtualenv(self):
    ssh = self.ssh_connect()
    venv_path = '/srv/virtualenvs/%s' % self.domain
    cmd = 'virtualenv %s' % env_path
    stdin = ssh.exec_command(cmd)
    self.create_database()
    ssh.close()

Теперь я наткнулся на небольшую стену, потому что я хочу также установить Django в этот недавно созданный virtualenv с pip. Я попробовал перехват postmkvirtualenv, потому что на этом сервере у меня установлен virtualenvwrapper, но он, похоже, не запускается, когда я создаю новую среду с использованием приведенного выше кода.

Кто-нибудь может дать мне какие-нибудь советы о том, как я могу установить Django таким образом?

1 ответ

Решение

Вы пытались использовать команду workon? Эта команда является частью virtualenvwrapper и позволяет вам активировать данный virtualenv, вы должны быть в состоянии сделать что-то вроде этого:

def create_virtualenv(self):
    ssh = self.ssh_connect()
    venv_path = '/srv/virtualenvs/%s' % self.domain
    cmd = 'workon %s; pip install Django' % env_path
    stdin = ssh.exec_command(cmd)
    self.create_database()
    ssh.close()
Другие вопросы по тегам