如何从Python脚本(或交互式shell)中找出系统的PYTHONPATH变量中列出了哪些目录?


当前回答

import subprocess
python_path = subprocess.check_output("which python", shell=True).strip()
python_path = python_path.decode('utf-8')

其他回答

你可能还想要这个:

import sys
print(sys.path)

或者从终点站出发的一条航线:

python -c "import sys; print('\n'.join(sys.path))"

注意:如果你安装了多个版本的Python,你应该使用相应的命令python2或python3。

import subprocess
python_path = subprocess.check_output("which python", shell=True).strip()
python_path = python_path.decode('utf-8')

使用命令,

$ which python

记住在正确的环境中输入这个,所以使用:

$ conda activate <env>

or

$ mamba activate <env>

如果没有conda环境,$ which python或$ which python3就可以了。

似乎无法修改另一个答案。有一个小错误,因为它是windows独有的。更通用的解决方案是使用os。路径sep如下:

sys。path可能包含PYTHONPATH环境变量中没有特别包含的项。要直接查询变量,使用:

import os
os.environ.get('PYTHONPATH', '').split(os.pathsep)

Python告诉我它在哪里,当它给我一个错误消息:)

>>> import os
>>> os.environ['PYTHONPATH'].split(os.pathsep)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\martin\AppData\Local\Programs\Python\Python36-32\lib\os.py", line 669, in __getitem__
    raise KeyError(key) from None
KeyError: 'PYTHONPATH'
>>>