一个伟大的丹麦人变成了蟒蛇环境侦探
scoob的Python项目详细描述
快速移动
一个伟大的丹麦人变成了python环境侦探
这是一个轻量级工具集,可以轻松地报告python环境的 软件包版本和硬件资源。
从PyPI安装:
pip install scooby
Scooby为Jupyter笔记本设置了HTML格式,为
几乎所有其他的环境。我们把这个模块设计得很轻
这样就可以很容易地将它作为python项目的依赖项添加到
调试时的环境报告。只需将scooby
添加到依赖项
并实现一个函数,使scooby
报告
你最关心的环境。
如果scooby
无法检测到您想要的环境的各个方面
请将此作为功能请求或拉取请求与我们共享。
scooby报告是从Dieter
Werthmüller为
empymod,emg3d,和
SimPEG框架。它的灵感来自
ipynbtools.py
来自qutip和
^{
用法
生成报告
报表在jupyter笔记本中呈现为html表,如 上面的屏幕截图,或者作为纯文本列表。
>>>importscooby>>>scooby.Report()
--------------------------------------------------------------------------------
Date: Sun Jun 30 12:51:42 2019 MDT
Darwin : OS
12 : CPU(s)
x86_64 : Machine
64bit : Architecture
32.0 GB : RAM
Python : Environment
Python 3.7.3 | packaged by conda-forge | (default, Mar 27 2019, 15:43:19)
[Clang 4.0.1 (tags/RELEASE_401/final)]
1.16.3 : numpy
1.3.0 : scipy
7.5.0 : IPython
3.1.0 : matplotlib
0.2.2 : scooby
Intel(R) Math Kernel Library Version 2018.0.3 Product Build 20180406 for
Intel(R) 64 architecture applications
--------------------------------------------------------------------------------
在默认(可选)包之上,您可以提供其他包, 作为字符串或提供已导入的包:
>>>importpyvista>>>importscooby>>>scooby.Report(additional=[pyvista,'vtk','no_version','does_not_exist'])
--------------------------------------------------------------------------------
Date: Mon Jul 01 10:55:24 2019 CEST
Linux : OS
4 : CPU(s)
x86_64 : Machine
64bit : Architecture
15.6 GB : RAM
IPython : Environment
Python 3.7.3 (default, Mar 27 2019, 22:11:17) [GCC 7.3.0]
0.20.4 : pyvista
8.1.2 : vtk
Version unknown : no_version
Could not import : does_not_exist
1.16.4 : numpy
1.2.1 : scipy
7.5.0 : IPython
3.1.0 : matplotlib
0.3.0 : scooby
Intel(R) Math Kernel Library Version 2019.0.4 Product Build 20190411 for
Intel(R) 64 architecture applications
--------------------------------------------------------------------------------
可以看到,如果无法导入包或 无法确定包的版本。
其他有用的参数是
ncol
:html表中的列数;text_width
:纯文本版本的文本宽度;sort
:如果为true,则列表按字母顺序排序。
除了additional
之外,还有两个列表,core
和optional
,它们
可用于提供包名称。然而,它们主要用于
希望使用scooby创建报表系统的包维护程序。
见下文:
在项目中实现scooby
您可以使用scooby轻松生成自己的报表实例:
classReport(scooby.Report):def__init__(self,additional=None,ncol=3,text_width=80,sort=False):"""Initiate a scooby.Report instance."""# Mandatory packages.core=['yourpackage','your_core_packages','e.g.','numpy','scooby']# Optional packages.optional=['your_optional_packages','e.g.','matplotlib']super().__init__(additional=additional,core=core,optional=optional,ncol=ncol,text_width=text_width,sort=sort)
因此用户可以使用您的报告:
>>>importyour_package>>>your_package.Report()
core
列表中的包是项目的必需包,而
optional
列表可用于可选包。保留
additional
-list free允许用户向列表中添加包。
解谜
你在为代码是否在 ipython,jupyter,还是普通的python?试着用史酷比的调查 解决这些谜团的功能:
importscoobyifscooby.in_ipykernel():# Do Jupyter/IPyKernel stuffelifscooby.in_ipython():# Do IPython stuffelse:# Do normal, boring Python stuff
史酷比如何获得版本号?
我们检查了几个位置,如果 需要,打开一个问题!
目前,它的外观如下:
__version__
;version
;- 查找
VERSION_ATTRIBUTES
; - 查找
VERSION_METHODS
。
VERSION_ATTRIBUTES
是已知python包的属性字典
使用版本的非标准位置,例如VERSION_ATTRIBUTES['vtk'] = 'VTK_VERSION'
。您可以通过添加其他已知位置
scooby.knowledge.VERSION_ATTRIBUTES['a_module']='Awesom_version_location'
类似地,VERSION_METHODS
是一个用于查找版本的方法的字典,
您可以添加类似的方法来定义
包裹。
使用Scooby获取版本信息。
如果您只是对包的版本感兴趣,那么可以使用scooby 也。几个例子:
>>>importscooby,numpy>>>scooby.get_version(numpy)('numpy','1.16.4')>>>scooby.get_version('no_version')('no_version','Version unknown')>>>scooby.get_version('does_not_exist')('does_not_exist','Could not import')
同样,模块可以作为已加载的模块或字符串提供。
可选要求
以下是可选要求及其用途的列表:
psutil
:以GB为单位报告RAM总量mkl-services
:报告英特尔(R)数学内核库版本