setuptools пытается использовать двоичный файл интерпретатора Python, используемый для его вызова для генерации оболочек. Для этой цели он вызывает distutils , который затем запрашивает sys.executable
.
В определенных обстоятельствах (например, в данной конкретной ситуации), sys.executable
может быть пустой строкой. Наиболее вероятная причина заключается в том, что операция упаковки выполняется в chroot
, что не разрешает Python доступ к /proc
.
os.path.normpath('')
оценивается как '.'
, который затем распространяется по всему пути назад к setuptools, и заканчивается в шебанге.
Обходной путь - вызвать Python, используя абсолютный путь:
/usr/bin/python setup.py install --root="$pkgdir"
Затем Python может получить свой собственный путь от argv[0]
, что позволяет setuptools генерировать правильные строки shebang.