Python sys.path不会自动包含当前工作目录
我在Win10上使用python.org安装程序。当从命令行运行脚本时,Python sys.path不会自动包含当前工作目录,python,sys,Python,Sys,我在Win10上使用python.org安装程序。当从命令行运行脚本时,sys.path中的第一项将是脚本的路径。我总是看到这一点。这些文档并没有说第二项将是运行脚本的目录,但在使用Python的几年中,我一直看到这种行为,其他人也提到了它。文档中说,sys.path是“从环境变量PYTHONPATH初始化的,加上依赖于安装的默认值。”我想理解这个短语的含义。例如,如果PYTHONPATH是空的(PowerShell:$env:PYTHONPATH=”“),那么令我惊讶的是,第二项没有添加。如果
sys.path
中的第一项将是脚本的路径。我总是看到这一点。这些文档并没有说第二项将是运行脚本的目录,但在使用Python的几年中,我一直看到这种行为,其他人也提到了它。文档中说,sys.path
是“从环境变量PYTHONPATH初始化的,加上依赖于安装的默认值。”我想理解这个短语的含义。例如,如果PYTHONPATH是空的(PowerShell:$env:PYTHONPATH=”“
),那么令我惊讶的是,第二项没有添加。如果PYTHONPATH以分号开头(PowerShell:$env:PYTHONPATH=“;”
),则添加第二项
我想这一定是预期的行为吧?我在找我。对这一假设的确认,以及ii。并解释我所看到的(如前一段末尾所述)。我的猜测是,“;”的PYTHONPATH被认为是以空字符串开头的,这会导致包含工作目录。不确定是否相关,但
os.path.abspath(“”
提供当前目录。第二项将是运行脚本的目录。
,这是真的吗?@Philippe在我在问题中描述的确切情况下,这就是我所看到的(在多个Windows 10系统上)。