Py函数直接传入root是啥意思_使用python语言开发ROOT之搭建环境方法探索

这里指的是使用python调用ROOT的模块,编写程序用来处理数据的环境搭建方法。

经过研究,一般有四种方案

  1. 环境变量法,主要依靠ROOT本身,环境变量是关键

    1. 预编译包,但是该方法没有证实成功搭建pyroot环境,成功概率很小。

    2. 源码编译,未尝试,成功概率一般。

  2. docker方法,未尝试,成功概率很大。

  3. python扩展库法,采用conda安装,实测可以用。

  4. ROOT本身已经支持,只要一行命令即可,完美方法。

2e806edd38cb5f2f4f811f0d776b94c3.png1 环境变量法

环境变量按照如下设置

如果您是在linux系统,设置如下几个变量,如果是bash类型的shell,

在用户目录下的.bashrc文件写入如下几行。

9e13bc8f88228f52922f6e98be59c3ec.png

 $ROOTSYS这个指的是ROOT的安装目录(对应的环境变量),该环境变量已经在ROOT安装时候自动生成好了(ROOT可正常使用的情况下)。

如果是windows,则如下设置

f5d9889d26803108e493b238fdb081f8.png

  1. a 预编译包的方法,就是可以直接采用官方提供的预编译好的包,例如作者在win下安装的ROOT如图所示

4dd2f0ae45ffd517cee2680172e42e7c.png

让我们继续探索,会发现有简单加密的pyc文件,没有加密的py以及动态库pyd。

0855fa9df173e2b0d51443ab3c969623.png

于是,打开pycharm,新建项目,新建文件一通操作猛如虎后,写入如下测试代码,失败了,报错不好解决,放弃之。

9c8bcce9a9485f3e29976dbdcc831060.png

这里具体如何解决,毕竟版本太老了。就暂时搁置了。

1.b 源码编译方法

参考ROOT文档,编译的时候要指定python的头文件和库文件路径。

c811f40372d0f7c02cfdc46affe0608a.png

configure完了后就

632f98be4b3ecb4e11ea7b945d11571c.png

即可。完成后会自动生成动态链接库。

也可以参考官网的cmake方案做python选项https://root.cern.ch/building-root

2e806edd38cb5f2f4f811f0d776b94c3.png2 docker仓库方法

这里简单提一下,具体的到docker hub的仓库搜一下即可。经过搜寻仓库有:

  1. pedwink/pyroot-notebook

  2. 其他

以上仓库并没有实测,有兴趣的可以尝试。

2e806edd38cb5f2f4f811f0d776b94c3.png3 conda安装扩展法

仅限于linux,实测有效,windows无效。

一般而言,如果使用python,为了方便配置环境,一般采用虚拟环境,笔者在更多的情况下是使用anaconda。这里参考的还是ROOT官方的一点资料。参考地址是某个github仓库地址。主要参考命令为

07df6cf2d18179f944d71ce5d010a487.png

实际操作命令为下图箭头的三行。

b8b2e9f2ccb576823496dcdf7060abf9.png

直接通过conda建立了虚拟环境,进而激活环境后,直接从conda-forge的频道安装ROOT有关的四个包即可。实测结果如下

6c47a439e680e91cb78fb16dc63c8ee2.png

2e806edd38cb5f2f4f811f0d776b94c3.png4 无需配置法

其实方法就是ROOT自带的。要求,python环境安装了jupyter,毕竟notebook要依赖他。还有个要求是ROOT版本必须是6.05以后的版本哦。

参考资料

19f2855573807bd4031d8fd767cf914e.png

实测结果

921b04ef543d4a5247d37e3d115e9d95.png

从下图可以看到,既可以选择python,也可以选择c++,还是很给力的样子。

f9a64b556d028ecd2d2b9f9067524f75.png

2e806edd38cb5f2f4f811f0d776b94c3.png小结

以上方法,当然推荐最后一种方法,可以说是极致懒人法,也是ROOT官方的方法,本文是有同学提出了问题,就进行了一番探索,最终给出了算是及格的答案,请继续支持。

如果您感觉本文能得到一定启发,请记得点击右下角“在看”哦。如果本文真的解决了您的问题,请自愿简单打赏哦。如果您对本文有想法或灵感或者建议,或者您有问题需要解决,可以留言到公众号或者文章下面的留言哦。笔者会根据问题的情况来以文章的方式或者简单口头回复哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值