如何确定正在使用的python解释器是哪个

在一台电脑上安装多个版本的python并不是什么稀奇的糟糕的操作,虽然python3已经推出很多年了,但一些依赖python2的软件在生产环境下可能并没有获得升级的机会,此外,利用虚拟技术也可以创建出多个python3版本,3.6, 3.7等等。

如此一来,某些情况下,我们并不清楚自己的程序使用的是哪个python版本,究竟用了哪个python解释器执行的程序,本文教你两个巧妙的办法快速定位程序所使用的python解释器。

方法1,查看sys.path 里的内容,sys.path 存放的是寻找python模块时的路径,在不考虑sys.path被修改的情形下,可以通过这里的路径确定所使用的的python解释器所在位置

>>> sys.path
['', '/data3/anaconda3/lib/python37.zip', '/data3/anaconda3/lib/python3.7',
'/data3/anaconda3/lib/python3.7/lib-dynload',
'/data3/anaconda3/lib/python3.7/site-packages']

这里就非常明显了,当前python解释器用的/data3/anaconda3/bin/python,尽管sys.path里并没有直接暴露这个路径,但可以通过lib的路径来确定python解释器的路径。

很长一段时间,我都是通过这种方法来确定所使用的python解释器的路径以及引用python库时的寻找路径,但这个方法并不是最佳的,首先它没有直接给出解释器的路径,其次,sys.path里的路径是可以修改的,通过PYTHONPATH环境变量就可以修改path列表,程序启动后也可以随意修改这个列表。

来看方法2,通过sys.executable查看

>>> sys.executable
'/data3/anaconda3/bin/python'

这是由系统模块sys直接提供的,即便你修改了sys.path列表里的内容也不会影响这各executable的值。

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案