Python 在Windows和Unix系统中执行符号链接时,sys.path的填充方式是否存在差异?
我在目录a中有一个python脚本,它由另一个目录B中的符号链接指向 在我的python脚本中,我有以下代码:Python 在Windows和Unix系统中执行符号链接时,sys.path的填充方式是否存在差异?,python,windows,unix,Python,Windows,Unix,我在目录a中有一个python脚本,它由另一个目录B中的符号链接指向 在我的python脚本中,我有以下代码: import sys print(sys.path) 在Unix上执行符号链接时,系统路径包含目录A。 在Windows上执行符号链接时,系统路径包含目录B 为什么会出现这种情况?在具有realpath的系统中,解释器调用它来解析脚本路径中的链接。Windows中的等效方法是打开脚本的句柄并调用GetFinalPathNameByHandle。在Python3中,这可以通过os.pa
import sys
print(sys.path)
在Unix上执行符号链接时,系统路径包含目录A。
在Windows上执行符号链接时,系统路径包含目录B
为什么会出现这种情况?在具有
realpath
的系统中,解释器调用它来解析脚本路径中的链接。Windows中的等效方法是打开脚本的句柄并调用GetFinalPathNameByHandle
。在Python3中,这可以通过os.path.\u getfinalpathname
获得。这将返回以“\\?\”前缀开头的扩展本地设备路径。您可以删除前缀,但“\?\UNC\”应替换为“\\”(两个前导反斜杠),以获得有效的UNC路径,如“\\server\share\path”。@eryksun我仍然不确定在这种情况下,使Windows的行为类似于Unix会涉及到哪些代码更改。要在默认情况下为所有脚本获取此行为,您可以在私有构建中修补解释器的init代码。要为每个人更改它,您需要在bugs.python.org上打开一个增强请求,并在GitHub上提交一个PR。