python 与 PYTHONPATH

which python vs PYTHONPATH

如果我输入 which python,我会得到:/home/USER/anaconda3/bin/python 如果我输入 echo $PYTHONPATH 我会得到:/home/USER/terrain_planning/devel/lib/python2.7/dist-packages:/opt/ros/melodic/lib/python2.7/dist-packages

应该不一样吧?而且这样设置不是更好吗:usr/lib/python/ 我该怎么做?将它添加到 PYTHONPATH 或将 PYTHONPATH 设置为那个?但是如何设置which python?

which python 是 python 解释器的路径。 PYTHONPATH 是一个环境变量,您的 Python 程序可以在其中搜索要导入的模块。

See section 1.2

应该不一样吧?设置它不是更好吗: usr/lib/python/ 我该怎么做?将它添加到 PYTHONPATH 或将 PYTHONPATH 设置为那个?但是如何设置哪个python?

不,它们不一样。您真的不需要修改 Python 解释器的路径。要修改 PYTHONPATH,您可以在 shell 中设置它,或者在 Python 程序中使用 sys.path

import sys
print(sys.path)
sys.path.append("another/path/to/search")

您正在混合使用 2 个环境变量:

  • PATH 其中 which 查找仅按名称访问的可执行文件。此变量是包含可执行文件的目录列表(colon/semi-colon 取决于平台)。不 python 具体。 which python 只查看这个变量并打印完整路径
  • PYTHONPATH 是 python 特定的目录列表(colon/semi-colon 像 PATH 一样分隔),其中 python 查找未直接安装的包在 python 分布中。名称和格式故意非常接近 system/shell PATH 变量,但操作系统根本不使用它,只是 python.