Você não especificou o interpretador Python para usar para criar seu ambiente virtual no diretório ~/Public/Programming/project1/ .
De man virtualenv :
-p PYTHON_EXE,--python=PYTHON_EXE
The Python interpreter to use to create the new environment.
A opção -p espera que o próximo argumento seja o interpretador python no qual o novo ambiente seria baseado. Mas você perdeu esse argumento e virtualenv acha que você deseja basear seu ambiente no ~/Public/Programming/project1/ intérprete. Mas não há intérprete disponível e, portanto, você obtém esse OSError .
Se você quiser usar o Python 2.7, o comando correto seria:
virtualenv -p python2.7 ~/Public/Programming/project1/
e para o Python 3.4, seria:
virtualenv -p python3.4 ~/Public/Programming/project1/