目前,构建配方collective.recipe.omelette 在所有Windows 版本上使用junction.exe 来创建符号链接。但是 junction.exe 默认情况下不随 Windows 提供,最重要的是不支持创建指向文件(仅目录)的符号链接,这会导致很多 Python 包出现问题。
在 NT6+(Vista 和 7)上,现在有 mklink 实用程序,它不仅默认提供,而且还能够创建文件和目录的符号链接。我想更新collective.recipe.omelette 以使用它(如果可用)并且已经这样做了,除了一个简单的功能;检测文件或文件夹是否实际上是符号链接。由于这是一个小的构建配方,在我看来需要 Pywin32 有点太多了(除非 setuptools 只能在 Windows 上下载它?)。
目前在 Windows 上,omelette 所做的是在文件夹上调用 junction.exe,然后 grep 响应“替代名称:”,但我找不到任何与 mklink 一样简单的东西。
我能想到的唯一方法是在目录中调用“dir”,然后逐行浏览响应,在同一行上查找“<SYMLINK>”和文件夹/文件名。肯定有更好的东西吗?