Python和PYTHONPATH有什么区别?

7
如果我输入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

4
PYTHONPATH 包含非标准路径指向你的 Python 库。which python 是你的 Python 可执行文件路径。这两者没有关联,你不应该尝试让它们相同。 - MisterMiyagi
2个回答

4

你混淆了两个环境变量:

  • PATH 是寻找可执行文件的变量,当它们仅以名称访问时,which 命令会查找这些文件。这个变量是一个包含可执行文件路径的列表 (在不同平台上用冒号或分号分隔),并不是特定于Python的。 which python 命令只是在这个变量中查找并打印完整路径。
  • PYTHONPATH 是Python特定的目录列表 (与 PATH 相似,用冒号或分号分隔),Python在其中查找未直接安装在Python发行版中的软件包。 这个变量名称和格式与系统/ shell的 PATH 变量非常相似,但它仅被Python使用,而操作系统不使用。

嗨,感谢您的好答案。 如果我将路径设置为 /usr/lib/python 会发生什么? 我该如何做到这一点? - gab
PYTHONPATH设置为Python安装路径将没有任何效果,因为在此位置没有Python模块可供导入。 - Jean-François Fabre

1

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

请参见第1.2节

这不应该是相同的吗?设置为usr/lib/python/ 不是更好吗?我该如何做?将其添加到PYTHONPATH还是将PYTHONPATH设置为该路径?但是如何设置which python?

它们不是相同的。您不需要修改Python解释器的路径。要修改PYTHONPATH,您可以在shell中设置它,或者通过使用sys.path在Python程序内部设置它。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接