为什么Python的sys.path中的第一个元素是空字符串?

26

我注意到,当我启动Python REPL并执行以下操作时:

import sys
print(sys.path)

列表的第一个元素是空字符串。这只会在 REPL 中发生。

https://docs.python.org/3/library/sys.html - whackamadoodle3000
1
文档对此进行了解释。 - zipa
可能是PYTHONPATH变量为空白的重复问题。 - user3483203
3个回答

18

sys.path[0] 是 Python 可执行文件为了指向正在运行的脚本所在目录而创建的一个入口。如果没有正在运行的脚本,例如直接调用 REPL,将会添加一个空的入口表示当前目录。


9

这个列表的第一项,path[0],是包含用于调用Python解释器的脚本的目录。

如果脚本目录不可用(例如,如果交互式地调用解释器或从标准输入读取脚本),则 path[0] 是空字符串,这将指示Python首先在当前目录中搜索模块。

根据此处的文档说明。


2
为文档链接加1。 - flow2k

5

文档中得知:

如果脚本目录不可用(例如,如果解释器是交互式调用的,或者从标准输入读取脚本),path [0]为空字符串

因此,当您通过命令行使用Python时,没有任何脚本被使用,所以第一个元素表示为空字符串。


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