Это мой сценарий предварительной фиксации:
#!/bin/bash
for f in .git/hooks/pre-commit.d/*; do
if [ -x "$f" ]; then
if ! "$f"; then
echo "DID NOT COMMIT YOUR CHANGES!";
exit 1
fi
fi
done
Один из исполняемых файлов в pre-commit.d - это сценарий python (pre-commit-pylint.py), который начинается с:
#!/usr/bin/env python
import pylint
pylint установлен на моем virtualenv. Моя проблема в том, что git запускает предварительную фиксацию / usr / libexec / git-core: / usr / bin
в $ PATH
, поэтому, даже если мой virtualenv активирован, Сценарий pre-commit.d / pre-commit-pylint.py
работает с системой / usr / bin / python
(вместо работы с виртуальным питоном).
Я хочу иметь хуки, совместимые с разработчиками, не использующими virtualenv. Есть ли способ запустить мой скрипт python с помощью virtualenv прозрачно (то есть, оставаясь совместимым с разработчиками, которые используют их системный python)?