Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sys.path不会自动包含当前工作目录_Python_Sys - Fatal编程技术网

Python sys.path不会自动包含当前工作目录

Python sys.path不会自动包含当前工作目录,python,sys,Python,Sys,我在Win10上使用python.org安装程序。当从命令行运行脚本时,sys.path中的第一项将是脚本的路径。我总是看到这一点。这些文档并没有说第二项将是运行脚本的目录,但在使用Python的几年中,我一直看到这种行为,其他人也提到了它。文档中说,sys.path是“从环境变量PYTHONPATH初始化的,加上依赖于安装的默认值。”我想理解这个短语的含义。例如,如果PYTHONPATH是空的(PowerShell:$env:PYTHONPATH=”“),那么令我惊讶的是,第二项没有添加。如果

我在Win10上使用python.org安装程序。当从命令行运行脚本时,
sys.path
中的第一项将是脚本的路径。我总是看到这一点。这些文档并没有说第二项将是运行脚本的目录,但在使用Python的几年中,我一直看到这种行为,其他人也提到了它。文档中说,
sys.path
是“从环境变量PYTHONPATH初始化的,加上依赖于安装的默认值。”我想理解这个短语的含义。例如,如果PYTHONPATH是空的(PowerShell:
$env:PYTHONPATH=”“
),那么令我惊讶的是,第二项没有添加。如果PYTHONPATH以分号开头(PowerShell:
$env:PYTHONPATH=“;”
),则添加第二项


我想这一定是预期的行为吧?我在找我。对这一假设的确认,以及ii。并解释我所看到的(如前一段末尾所述)。我的猜测是,“;”的PYTHONPATH被认为是以空字符串开头的,这会导致包含工作目录。

不确定是否相关,但
os.path.abspath(“”
提供当前目录。
第二项将是运行脚本的目录。
,这是真的吗?@Philippe在我在问题中描述的确切情况下,这就是我所看到的(在多个Windows 10系统上)。