Одна вещь, которую я ненавижу distutils (я думаю он злой, кто это делает) заключается в том, что он меняет линию shebang. Другими словами, более рациональные и экологические варны приняли решение о писании
#!/usr/bin/env python
магически преобразуется в
#!/whatever/absolute/path/is/my/python
Это также видно с помощью grok: я использовал grokproject в virtualenv для запуска моего проекта, но теперь я больше не могу перемещать каталог разработки, потому что он устанавливает абсолютные пути в директиве shebang.
Причина, по которой я задаю это, двоякая.
- Я хочу переместить его, потому что я начал развиваться в одном каталоге (Experiments), и теперь я хочу переместить его в правильный путь, но я не мог этого сделать. Поэтому я создал новый virtualenv и grokproject и скопировал мои файлы. Это устраняет проблему, но оставляет мое любопытство для более рационального решения неудовлетворенным. В частности, если ссылка на виртуальный интерпретатор python была относительной, проблема не была бы в первую очередь. Вы знаете макет виртуального, и вы можете легко обращаться к виртуальному python.
- Вторая причина заключается в том, что я хотел бы иметь возможность scp virtualenv на другой компьютер и запускать его там без проблем. Это невозможно, если у вас есть жестко заданные пути.