В настоящее время для создания символических ссылок в сборочном рецепте colle.recipe.omelette используется файл junction.exe во всех версиях Windows. Однако junction.exe не поставляется с Windows по умолчанию и, что важнее всего, не поддерживает создание символических ссылок на файлы (только каталоги), что вызывает проблемы с довольно большим количеством пакетов Python.
В NT6 + (Vista и 7) теперь есть утилита mklink, которая не только поставляется по умолчанию, но и способна создавать символические ссылки на файлы и каталоги. Я хотел бы обновить файл collect.recipe.omelette, чтобы использовать его, если он доступен, и сделал это, за исключением одной простой функции; определение, является ли файл или папка символической ссылкой Поскольку это небольшой рецепт сборки, требовать Pywin32, на мой взгляд, слишком много (разве что setuptools может каким-то образом загрузить его только в Windows?).
В настоящее время в Windows омлет выполняет вызов junction.exe для папки, а затем вызывает запрос «Замените имя:», но я не могу найти ничего более простого для mklink.
Единственный метод, который я могу придумать, - это вызвать в каталоге «dir», а затем пройти строку ответа за строкой в поисках «» и папки / имени файла в той же строке. Неужели есть что-то лучше?