Это моя предварительно совершить сценарий:Как я могу запустить virtualenv питон скрипт как мерзавец перед фиксацией ловушкой
#!/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
Один из исполняемых файлов в предварительно commit.d является питон скрипт (пред- commit-pylint.py), который начинается с:
#!/usr/bin/env python
import pylint
pylint установлен на моем виртуальном пространстве. Моя проблема заключается в том, что git запускает pre-commit preending /usr/libexec/git-core:/usr/bin
до $PATH
, поэтому даже если мой virtualenv активирован, скрипт pre-commit.d/pre-commit-pylint.py
работает с системой /usr/bin/python
(вместо работы с виртуальным python).
Я хочу иметь крючки, которые совместимы для разработчиков, которые не используют virtualenv. Есть ли способ запустить мой скрипт python с помощью virtualenv прозрачно (т. Е. Оставаться совместимым с разработчиками, использующими свой системный python)?
Вы когда-нибудь находили способ предотвратить использование Git от '/ usr/bin' до $ PATH крючка? Просто столкнулся с этим сам. – joemaller
нет, я этого не сделал. Я работал над своей проблемой с ответом Роба. –
для Ruby's rbenv: https://github.com/sstephenson/rbenv/issues/374 –