我正在尝试设置回归测试套件并在运行时合并系统配置。以下代码查找系统使用的大多数模块(及其版本):
import pkg_resources
import sys
for m in sys.modules:
try:
ml.append(m+'-'+pkg_resources.get_distribution(m).version)
except:
pass
print "# modules used:",sort(ml)
返回:
# modules used: ['IPython-4.0.0', 'PIL-1.1.7', 'bottleneck-1.0.0',
'decorator-4.0.2', 'ipykernel-4.0.3', 'ipython_genutils-0.1.0',
'jupyter_client-4.0.0', 'jupyter_core-4.0.4', 'matplotlib-1.4.3',
'numexpr-2.4.3', 'numpy-1.9.2', 'pandas-0.16.2', 'pexpect-3.3',
'pickleshare-0.5', 'pyparsing-2.0.3', 'pysal-1.10.0', 'pytz-2015.4',
'scipy-0.16.0', 'simplegeneric-0.8.1', 'six-1.9.0', 'tornado-4.2.1',
'traitlets-4.0.0', 'xlsxwriter-0.7.3']
但并非所有这些都有。快速检查以下内容:
ml = ['sklearn-'+sklearn.__version__,
'osgeo-'+osgeo.__version__]
print "# package versions:",sort(ml)
返回:
# package versions: ['osgeo-2.0.0' 'sklearn-0.16.1']
在主脚本中安装和使用。我还应该补充一些报告的模块,如龙卷风和xlsxwriter,而不是直接调用或使用,而一些直接导入代码的模块未找到。
有没有人知道一个技巧来报告从脚本中调用的那些,或者至少有一个不会错过重要脚本的技巧?