2014-07-25 2 views
3

Есть ли способ сохранить результат, созданный во время установки программы, установленной с помощью setup.py? Я хочу, чтобы написать это в сам сценарий setup.py, а не в терминале, когда я запустить setup.pyСохранение журнала установки, сгенерированного с помощью setup.py

ответ

2

Перед функция setup() называется, перенаправлять sys.stdoutsys.stderr в лог-файл.)

Марка обязательно верните обратно stdoutstderr) в их ссылки по умолчанию и распечатайте содержимое файла журнала до stdout.

Ваш setup.py должен выглядеть следующим образом:

from setuptools import setup, find_packages 
import sys 

stdout = sys.stdout 
stderr = sys.stderr 

log_file = open('log', 'w') 
sys.stdout = log_file 
sys.stderr = log_file 

setup ( 
     ... , 
     ... 
    ) 

# Make sure to close the log file. You could also use with to surround the setup() 
# To ensure log file is closed in the event of exception. 
log_file.close() 

sys.stdout = stdout 
sys.stderr = stderr 

with open('log', 'r') as log_file: 
    sys.stdout.write(log_file.read()) 
+0

Этот почти работает. Он пропустил предупреждение компилятора при установке mysql-python в виртуальную среду python 2.7. – cstrutton

0

Вы можете попробовать следующее в терминале или PowerShell

pyhton.exe setup.py >> logfile.txt 

это должно Append все консольный вывод в LogFile.txt