Python 保存从setup.py生成的安装日志
是否有办法保存在安装使用setup.py安装的程序期间生成的输出?我想将其写入setup.py脚本本身,而不是在运行setup.py时写入终端。在调用Python 保存从setup.py生成的安装日志,python,distutils,setup.py,Python,Distutils,Setup.py,是否有办法保存在安装使用setup.py安装的程序期间生成的输出?我想将其写入setup.py脚本本身,而不是在运行setup.py时写入终端。在调用setup()函数之前,将sys.stdout(和sys.stderr重定向到日志文件。) 确保将stdout(和stderr)还原为其默认引用,并将日志文件的内容打印到stdout 您的setup.py应如下所示: from setuptools import setup, find_packages import sys stdout = s
setup()
函数之前,将sys.stdout
(和sys.stderr
重定向到日志文件。)
确保将stdout
(和stderr
)还原为其默认引用,并将日志文件的内容打印到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())
您可以在终端或powershell中尝试以下操作
pyhton.exe setup.py >> logfile.txt
这应该将所有控制台输出附加到logfile.txt中,这几乎可以正常工作。在将mysql-python安装到python2.7虚拟环境中时,它错过了一个编译器警告。