Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.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 在Windows和Unix系统中执行符号链接时,sys.path的填充方式是否存在差异?_Python_Windows_Unix - Fatal编程技术网

Python 在Windows和Unix系统中执行符号链接时,sys.path的填充方式是否存在差异?

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

我在目录a中有一个python脚本,它由另一个目录B中的符号链接指向

在我的python脚本中,我有以下代码:

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。