Хорошо, я посмотрел исходный код distutils, чтобы увидеть, что происходит - distutils.command.install
выполняет все манипуляции с путями.
Оказывается, документация на самом деле неверна. Всякий раз, когда предоставляется опция стиля --install-xxxx, она полностью переопределяет любое значение, которое может быть получено из --home
или --prefix
- код not выполняет прямую конкатенацию путей.
Однако , то, что он делает, это подстановка переменных набора специальных переменных. Особенно меня интересует $base
. Используя его в командной строке, вы можете определить переопределения, и distutils заменит все вхождения на то, что было указано для --home
и т. Д. Но обратите внимание, что вы должны указывать свои имена файлов, чтобы BASH не пытался развернуть его как переменную среды.
Итак, командная строка, которая у меня была изначально, становится:
python setup.py install --home=/home/andre/code/packages/install --install-purelib='$base/modules' \
--install-platlib='$base/modules' --install-scripts='$base/scripts' --install-data='$base/data'
Надеюсь, кто-то, кроме меня, найдет это полезным!