我正在使用venv和pip创建一个友好的python开发环境,这样用户就可以在PYTHONPATH上启动一个包含所有LIB的jupyter笔记本。
为了删除用户不使用的lib,我想将Python执行期间加载的所有lib记录在一个集中的NAS共享中(它们在主机上运行Python进程,但可以在一个中央NAS共享中写入)。为此,我考虑使用strace -e trace=open,read python..
并根据我的libs文件路径过滤条目,但我非常确定应该有一个标准的python库来完成这种遥测工作
Tags:
您可以包装
builtins.__input__
以记录导入模块的名称,然后运行(通过exec
函数,但我们需要捕获if __name__ == '__main__':
块,因此这可能是不可避免的)要监视的代码:loggy.py
测试脚本
test.py
对我(Python 3.6.9)来说,这似乎可以记录辅助脚本导入的所有模块:
问题
监视用户python环境/工作站上的python进程,以确定要删除哪些未使用的LIB
解决方案
我不确定是否有现成的独立工具
strace
(正如你在问题中提到的那样)+syslog
是一个选项。我知道您提到过将日志保存到NAS,但我也会考虑使用轻量级^ {< CD2> }服务器,如^ {< CD2> },可以处理边缘情况(即:自动重试),并提供一个接口,以便您能够过滤日志。p>参考资料
系统日志筛选器引用:https://www.syslog-ng.com/technical-documents/doc/syslog-ng-open-source-edition/3.17/administration-guide/52#TOPIC-989744
相关问题 更多 >
编程相关推荐