查找Python解释器的完整路径?

kt06eoxx  于 2023-02-02  发布在  Python
关注(0)|答案(3)|浏览(154)

如何从当前执行的Python脚本中找到当前运行的Python解释器的完整路径?

ttcibm8c

ttcibm8c1#

sys.executable包含当前运行的Python解释器的完整路径。

import sys

print(sys.executable)

现在是documented here

z9gpfhce

z9gpfhce2#

注意另一种使用os.environ的方法,其实用性值得怀疑:

import os
python_executable_path = os.environ['_']

例如:

$ python -c "import os; print(os.environ['_'])"
/usr/bin/python
svmlkihl

svmlkihl3#

有几种替代方法可以确定Linux中当前使用的python是:

  1. which python命令。
  2. command -v python命令
  3. type python命令
    同样在Windows上与Cygwin也将导致相同的结果。
kuvivek@HOSTNAME ~
$ which python
/usr/bin/python

kuvivek@HOSTNAME ~
$ whereis python
python: /usr/bin/python /usr/bin/python3.4 /usr/lib/python2.7 /usr/lib/python3.4        /usr/include/python2.7 /usr/include/python3.4m /usr/share/man/man1/python.1.gz

kuvivek@HOSTNAME ~
$ which python3
/usr/bin/python3

kuvivek@HOSTNAME ~
$ command -v python
/usr/bin/python

kuvivek@HOSTNAME ~
$ type python
python is hashed (/usr/bin/python)

如果您已经在python shell中,请尝试以下任一方法。注意:这是另一种方法不是最好的Python方法。

>>> import os
>>> os.popen('which python').read()
'/usr/bin/python\n'
>>>
>>> os.popen('type python').read()
'python is /usr/bin/python\n'
>>>
>>> os.popen('command -v python').read()
'/usr/bin/python\n'
>>>
>>>

如果您不确定python命令的实际路径,并且系统中有该路径,请使用以下命令。

pi@osboxes:~ $ which python
/usr/bin/python
pi@osboxes:~ $ readlink -f $(which python)
/usr/bin/python2.7
pi@osboxes:~ $ 
pi@osboxes:~ $ which python3
/usr/bin/python3
pi@osboxes:~ $ 
pi@osboxes:~ $ readlink -f $(which python3)
/usr/bin/python3.7
pi@osboxes:~ $

相关问题