2017-02-05 2 views
1

Я хотел бы сохранить запись всех команд pip, выполненных в данной виртуальной среде, и версий пакетов, которые были установлены/обновлены/удалены. Есть ли простой способ сделать это?регистрировать все команды pip в данной виртуальной среде?

В качестве альтернативы, как мне получить requirements.txt (включая --install-option и т. Д.) Из моего состояния виртуальной среды, если это возможно? Предположительно, должны существовать только непосредственные зависимости.

+0

'pip install foo bar baz> & pip_log.txt' будет выводить выходные данные, если вы находитесь в системе POSIX. – Greg

+0

'pip' с файлами требований - желаемая государственная система. Это делает изменения неуместными. Вам следует рассмотреть возможность использования только файлов требований (без ручных изменений) и сохранить его историю. –

ответ

1

Редактировать pip скрипт, чтобы вставить это в начале __main__ сегмента:

if __name__ == '__main__': 
    import os 
    env_dir = os.environ['VIRTUAL_ENV'] 
    with open(os.path.join(env_dir, 'pip_log.txt'), 'a') as f: 
     f.write(' '.join(sys.argv[1:]) + '\n') 

Это будет регистрировать каждый вызов ПГИ pip_log.txt в каталоге virtualenv. Pip находится в папке bin в virtualenv, рядом с скриптом активации.

0

Вы можете использовать команду history для просмотра истории всех ваших команд, а затем grep для pip без вывода в файл. Как указано выше.

Смежные вопросы