Você colocou o exemplo correto em sua pergunta:
BuildRequires: python >= 2.7
BuildRequires: python < 3.0
é a maneira correta de fazer isso.
No entanto, você precisa ter cuidado ao usar o mesmo esquema para a seção Requer clássico. Se você colocar:
Requires: python >= 2.7
Requires: python < 3.0
no seu arquivo de especificação, e o pacote python-3.0 entra em um dos seus yum repos, o yum o oferecerá como uma atualização, o que causará problemas de dependência na sua execução do 'yum update'. Run iria abortar com um erro, e a única forma de evitar seria colocar:
exclude=python-3*
para sua seção de recompra ou para executá-lo com:
yum update --exclude=python
Se você usar essa abordagem apenas para BuildRequires, não terá problemas, a menos que o pacote python-3.0 esteja instalado antes de executar o yum-builddep. Nesse caso, você precisará removê-lo primeiro.